nodejs抓取动态网页( 你眼中的JavaScript是干什么?特效?or只是与客户端的交互?)
优采云 发布时间: 2022-01-04 07:14nodejs抓取动态网页(
你眼中的JavaScript是干什么?特效?or只是与客户端的交互?)
在nodejs中实现路由功能
更新时间:2014年12月29日08:55:07 投稿:俊杰
本文文章主要介绍nodejs中的路由功能。顾名思义,路由是指我们必须以不同的方式处理不同的 URL。本文将教你在node.js中实现路由功能。有需要的朋友可以参考
一个 Node 初学者,我发现了一个与我之前的观点完全不同的场景——JavaScript 在你眼中的目的是什么?特殊效果?还是只是与客户的互动?可以说 JavaScript 最初是在浏览器中运行的,但如果你这样想,浏览器只是提供了一个上下文(context),它定义了你可以用 JavaScript 做什么。这可以被认为是一个类似的企业,企业定义了你在这里可以做什么,但并没有多说 JavaScript 语言本身可以做什么。事实上,作为一门完整的语言,JavaScript 可以用在不同的上下文中,体现出不同的能力。这里提到的Nodejs其实就是提供一个上下文,一个运行环境,让JavaScript代码可以在后端(浏览器环境之外)运行。
路由的核心是路由。顾名思义,路由就是我们要以不同的方式处理不同的URL,比如处理/启动业务逻辑,处理/上传模块业务;逻辑不一致。在实际实现中,路由过程会在路由模块中“结束”,而路由模块并不是真正对请求“采取行动”的模块,否则当我们的应用变得更复杂时,它就无法使用了。非常好的扩展。
这里我们首先创建一个名为 requestHandlers 的模块,并为每个请求处理程序添加一个占位符函数:
复制代码代码如下:
函数开始(){
console.log("请求处理程序'start'被调用。");
函数睡眠(毫秒){
var startTime=new Date().getTime();
while(new Date().getTime() }
睡眠(10000);
return "Hello Start";
}
函数上传(){
console.log("请求处理程序'上传'被调用。");
返回“你好上传”;
}
exports.start=start;
exports.upload=upload;
这样,我们就可以连接请求处理程序和路由模块,让路由“有路径可走”。之后,我们决定通过一个对象传递一系列请求处理程序,我们需要使用松耦合将这个对象注入到router()函数中,主文件index.js:
复制代码代码如下:
var server=require("./server");
var router=require("./router");
var requestHandlers=require("./requestHandlers");
var handle={};
handle["/"]=requestHandlers.start;
handle["/start"]=requestHandlers.start;
handle["/upload"]=requestHandlers.upload;
server.start(router.route,handle);
如上所示,很容易将不同的 URL 映射到同一个请求处理程序:只需在对象中添加一个键为“/”的属性,对应 requestHandlers.start。这样,我们就可以简洁地配置 /start 和 / 由 start 处理程序处理的请求。完成查看对象的定义后,我们将其作为附加参数传递给服务器,参见server.js:
复制代码代码如下: