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 함수를 호출하고 파라미터를 전달한다.
출처
'Code Snippets' 카테고리의 다른 글
파이썬 map, filter, reduce 함수 (0) | 2021.04.22 |
---|---|
쥬피터 노트북 명령어 정리 (0) | 2021.04.20 |
MySQL Multiple Insert SQL (0) | 2021.01.31 |
Python Numpy 데이터 쓰기/읽기 (0) | 2021.01.28 |
Javascript 시간차이를 계산하고 출력하는 함수 (0) | 2017.03.06 |