我知道Node是非阻塞等但我不知道如何在不阻塞的情况下解决这个问题.
你启动服务器
node app.js
Run Code Online (Sandbox Code Playgroud)
但是在处理传入的请求之前,您需要从数据库或mongodb进行一些配置等,因此在启动处理请求之前,需要等待db响应返回.
我可以使用灵活但是你必须将路径等所有包装在第二个执行块中,这是令人讨厌的.
什么是最好的方式?
Node确实是非阻塞的,但这并不意味着您需要立即开始接受请求!看一下经典的HTTP服务器示例:
var http = require('http');
var server = http.createServer(function (req, res) {
// ... logic to handle requests ...
});
server.listen(8000);
Run Code Online (Sandbox Code Playgroud)
您可以在致电之前做任何您喜欢的事情server.listen,包括您需要的任何配置任务.假设这些任务是异步的,您可以在回调中启动服务器:
var http = require('http');
var server = http.createServer(function (req, res) {
// ... logic to handle requests ...
});
// Set up your mongo DB and grab a collection, and then...
myMongoCollection.find().toArray(function(err, results) {
// Do something with results here...
// Then start the server
server.listen(8000);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2870 次 |
| 最近记录: |