Node.js gRPC Source code

Code Snippets 2021. 1. 31. 10:11

 

module 설치

npm install @grpc/grpc-js

npm install @grpc/proto-loader

 

grpc, proto-loader require

const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');

 

proto Load

const PROTO_PATH = __dirname + '\\your_protofile_name.proto';
const packageDefinition = protoLoader.loadSync(PROTO_PATH, [OPT]);
const protoDescriptor = grpc.loadPackageDefinition(packageDefinition);
const myGrpc = protoDescriptor.[your_package_name];

[your_package_name] : .proto 파일에 package로 설정한 이름을 작성하면 된다.

 

stub

const stub = new myGrpc.GreetingService('[your_grpc_ip]:[your_grpc_port]', grpc.credentials.createInsecure());

 

Node.js gRPC 호출 예시

app.post('/greeting', (req, res) => {
    const params = {
    	[your_parameter_name]:[your_data_name],
        [your_parameter_name]:[your_data_name],
        [your_parameter_name]:[your_data_name],
        [your_parameter_name]:[your_data_name]
    };
    stub.greeting(params, function(err, feature) {
        if (err) {
            // process error
            console.log(feature)
        } else {
            // process feature
            console.log(feature)
        }
        res.send(feature)
    });
});

POST방식의 클라이언트에게 greeting이라는 API를 지원하는 간단한 예시이다.

클라이언트의 요청을 받으면 gRPC 서버의 stub의 greeting 함수를 호출하고 파라미터를 전달한다.

 

출처

admin