
首先,我们来扩展一下服务器的start()函数,以便将路由函数作为参数传递过去:
var http = require("http");
var url = require("url");
function start(route) {
function onRequest(request, response) {
var pathname = url.parse(request.url).pathname;
console.log("Request for " + pathname + " received.");
route(pathname);
response.writeHead(200, {
"Content-Type": "text/plain"
});
response.write("Hello World");
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Server has started.");
}
exports.start = start;同时,我们会相应扩展index.js,使得路由函数可以被注入到服务器中:
var server = require("./server");
var router = require("./router");
server.start(router.route);require函数
require是一个基于AMD规范实现的函数,它区别于传统的CommonJS require规范。因为它能够异步地加载动态的依赖,所以,我们对基于require的回调方式有了更多的需求。
局部require也支持其他标准实现的API。
全局require函数作用于全局,和define()类似。 全局require和局部require有着相同的行为,包含以下特征:
模块ID应该认为是一个绝对的模块名称,而不是相对另一个模块的ID。
只有在同步的时候,基于require的回调才可以立即的运行,因为它不可能在顶层通过require(String)的形式同步地加载模块
实际中,我们经常会遇到一些阻塞模块加载的依赖,如果交互次数很多,需要大量的模块加载,应该采用全局依赖的形式去加载顶层模块。
想要了解更多前端知识,可访问 前端开发学习!!
以上就是nodejs怎么实现依赖注入?的详细内容,更多请关注易知道|edz.cc其它相关文章!












