رقصنده با کد
781 subscribers
1.69K photos
850 videos
207 files
666 links
Here are some interesting things I've come across during my learning process. That's it. Admin ID:
@alithecodeguy
Download Telegram
Node v18 has integrated watch mode , so no need for nodemon
node --watch file.js
#node #nodejs
این پست به درخواست یکی از اعضا گذاشته شده و این کانال در قبال آن هیچ مسولیتی ندارد.
--------------------
تیم فراپاد از مجموعه داتین همکارانی با تخصص های زیر به صورت حضوری و تمام وقت نیاز دارد :

- Node.js Developer(Mid & Senior)
- React Developer (Mid & Senior)
- Test Engineer(Senior & Mid & Junior)

📩 راههای ارسال رزومه:
✔️ پیام دایرکت لینکدین
✔️ ایمیل [email protected]

محل کار:
پارک فناوری پردیس

مزایای همکاری:
- بیمه تکمیلی
- کار در محیطی حرفه ای و همکاری با افراد متخصص، با تجربه و با انگیزه
- اتاق بازي
- باشگاه ورزشی
- سرویس رفت و آمد به کلیه مناطق تهران
- جشن و هداياي مناسبتي
- صبحانه و ناهار

#فرصت_شغلی #استخدام #developer #engineer #nodejs #reactjs
#testengineer #softwareengineer
A sync prompt for node. very simple. No C++ bindings and no bash scripts.
Works on Linux, OS X and Windows.
#js #nodejs
پروتکل gRPC یه راه برای اینه که دو تا برنامه (مثلاً دو تا سرور، یا یه موبایل و یه سرور) بتونن با هم حرف بزنن و داده رد و بدل کنن.

باهاش می‌تونی خیلی راحت بگی:
«هی سرور! این تابع رو با این ورودی اجرا کن و نتیجه رو برگردون.»

خیلی شبیه به REST یا API های HTTP هست، ولی:

- سریع‌تره (چون از HTTP/2 و باینری استفاده می‌کنه)
- کم‌حجم‌تره (به جای JSON از protobuf استفاده می‌کنه)
- قراردادی‌تره (یه فایل proto می‌نویسی که مشخص می‌کنه درخواست و پاسخ چه شکلیه)

مزایای gRPC:

سریع
کم‌حجم
چندزبانه (جاوا، پایتون، Go، جاوااسکریپت و … می‌فهمنش)
خیلی خوب برای میکروسرویس‌ها

معایب gRPC:

عدم پشتیبانی مستقیم توسط مرورگرها
دیباگ و لاگ‌گیری سخت‌تر
نسبتاً جدید و ناشناخته‌تر
نیاز به ساختن فایل proto و generate کردن کد

مثال با nodejs:

helloworld.proto
‍‍‍

syntax = "proto3";

package helloworld;

// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}

// The request message containing the user's name.
message HelloRequest {
string name = 1;
}

// The response message containing the greetings
message HelloReply {
string message = 1;
}



npm init -y
npm install @grpc/grpc-js @grpc/proto-loader


server.js


import grpc from '@grpc/grpc-js';
import protoLoader from '@grpc/proto-loader';

// Load proto file
const packageDefinition = protoLoader.loadSync('helloworld.proto', {});
const proto = grpc.loadPackageDefinition(packageDefinition).helloworld;

// Implement the SayHello RPC
function sayHello(call, callback) {
console.log('Received request for:', call.request.name);
callback(null, { message: `Hello, ${call.request.name}!` });
}

// Start the gRPC server
const server = new grpc.Server();
server.addService(proto.Greeter.service, { SayHello: sayHello });
server.bindAsync('0.0.0.0:50051', grpc.ServerCredentials.createInsecure(), () => {
console.log('Server running at https://0.0.0.0:50051');
server.start();
});


client.js


import grpc from '@grpc/grpc-js';
import protoLoader from '@grpc/proto-loader';

// Load proto file
const packageDefinition = protoLoader.loadSync('helloworld.proto', {});
const proto = grpc.loadPackageDefinition(packageDefinition).helloworld;

// Create client
const client = new proto.Greeter('localhost:50051', grpc.credentials.createInsecure());

// Make request
client.SayHello({ name: 'Ali' }, (err, response) => {
if (err) {
console.error(err);
return;
}
console.log('Greeting:', response.message);
});


Run it!
node server.js
node client.js

Server running at https://0.0.0.0:50051
Received request for: Ali

Greeting: Hello, Ali!

#grpc #nodejs

@danceswithcode