0

I have to execute an ansync function before execute an express server, because I'm going to get a aparameter to pass it to the API. So I guess I can call the async funcion and on the promise I will get, call my express server (until now I have exectued it with "node my_server.js") How can I do that? How can I call my_server.js on my new js ?

J.F.
  • 307
  • 1
  • 4
  • 18

2 Answers2

0

You can fork a new process using the child_process module in node.

const { fork } = require('child_process')
const path = require('path')

const newProcess = fork(path.join(__dirname, 'path/to/jsfile'), [...otherArgs])
Prithwee Das
  • 4,628
  • 2
  • 16
  • 28
0

Usually the server does not get created while merely running node server.js. It will just execute javascript contained in server.js. The server will be created when your code reaches express() if you are creating server via express or createServer from plain nodejs.

That means you can probably do

var param = await someSync();

// Set the param in global context and then create your server

var app = express(); 

// or

var app = createHttpServer()

So now before your app starts you will have that param and you can use it in your api

If you are using promise instead of async, just create your server in then part of your promise, this will also make sure that your app will have that param before your server starts

Umair Abid
  • 1,453
  • 2
  • 18
  • 35