首先,我们来扩展一下服务器的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其它相关文章!