根据模块化和松耦合的思想,一个简单的http服务器可分为server.js,redirector.js,redirectHandlers.js以及launcher.js模块。
server.js文件中是非常基础的http服务器代码。
redirector.js用于对重定向的处理。
而redirectHandlers.js是对各种重定向处理函数的封装。
launcher.js用于调用应用的其他模块(比如server.js中的http服务器模块)来引导和启动应用。
上代码:
server.js
var http = require("http");
var url = require("url");
function start(redirect, redirectHandle) {
function onRequest(request,response) {
var pathname = url.parse(request.url).pathname;
console.log("Request for " + pathname + " received.");
var string = redirect(pathname, redirectHandle);
response.writeHead(200,{"Content-Type":"text/plain"});
response.write(string);
response.end();
}
http.createServer(onRequest).listen(8089);
console.log("Server has started.");
}
exports.start = start;
redirector.js
function redirect(pathname, redirectHandle) {
if(typeof redirectHandle[pathname] === 'function') {
return redirectHandle[pathname]();
} else {
console.log("Bad request for " + pathname + "page.");
return "400 Not found";
}
}
exports.redirect = redirect;
redirectHandlers.js
function index() {
console.log("Redirect to 'index' page.");
return "Hello guy!!!"
}
function what() {
console.log("Redirect to 'what' page.");
return "What can I do for you?"
}
function how() {
console.log("Redirect to 'how' page.");
return "How are you!"
}
exports.index = index;
exports.what = what;
exports.how = how;
launcher.js
var server = require("./server");
var redirector = require("./redirector");
var redirectHandlers = require("./redirectHandlers");
var redirectHandle = {};
redirectHandle["/"] = redirectHandlers.index;
redirectHandle["/index"] = redirectHandlers.index;
redirectHandle["/what"] = redirectHandlers.what;
redirectHandle["/how"] = redirectHandlers.how;
server.start(redirector.redirect, redirectHandle);
Node好强大:
一个node做的豆瓣数据统计网站
more:
Node 入门
分享到:
相关推荐
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
钉钉企业微应用官方Demo,用NodeJs语言开发,封装好了各种库,方便二次开发
原来一直不知道怎么在Express+Nodejs里面添加类似于Struts2的拦截器(因为要使用登录拦截的功能)。 以前一直以为在router这块添加类似一下的转移路由控制权代码的(每个都加很麻烦) app.get('/show', ...
配置您可以配置以下环境变量来设置重定向: 使用REDIRECT_URL您可以配置重定向到的 url(默认为 ) REDIRECT_URL=http://example.com使用REDIRECT_STATUS_CODE您可以配置所需的重定向状态代码(默认为 301) ...
宠物api 为宠物店开发NodeJS API 为什么? 这是来自Alura Cursos Online的NodeJS API开发训练营的摘要。...THEN should redirect to "/atendimento" AND status should be 301 / atendimento ::注册a
适用于NodeJS的Google DFP API客户端 基本 初始化DFP广告管理系统实例。 var Dfp = require ( 'node-google-dfp' ) , dfpUser = new Dfp . User ( NETWORK_CODE , APP_NAME , VERSION ) ; 接下来,设置您的客户端...
Nodejs 包装器 安装 从 NPM 安装。 npm install misfit-cloud-api --save 用法 var MisfitAPI = require ( 'misfit-cloud-api' ) ; 重定向到授权 URL var mySettings = { clientKey : 'your clientKey' , //...
请求 code 的目的就是获取用户的 openid(用户相对于当前公众号的唯一标识) 和access_token,请求的API:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&res
NodeJS 工具,用于从命令行处理博主的帖子。 设置 启用 Blogger API。 为 Web 应用程序创建客户端 ID 将 CLIENT ID 和 CLIENT SECRET 分别存储在 BLOGGER_CLIENT_ID 和 BLOGGER_CLIENT_SECRET 中 在 BLOGGER_...
-d "redirect_uri=http://localhost:5000/auth/merus/callback" \ https://api.meruscase.com/v1/apps 安装依赖项: npm install 设置您的环境: export MERUS_CLIENT_ID=123 export MERUS_SECRET_KEY=abcdef...
恒定联系NodeJS客户端 这个模块是非常阿尔法的。 我保证有很多错误。 拉取请求非常受欢迎。 安装 npm install constant-contact 用法 var ConstantContact = require('constant-contact'); var auth = new ...
Stepify()的调用会返回一个Stepify实例,在这里称之为workflow,用于调度所有task的执行。 step()的调用会创建一个Step实例,用于完成具体的异步操作(当然也可以是同步操作,不过意义不大),step之间使用简单的api...
微信jssdk 下一代微信JS-SDK与NodeJS的集成。 如果需要node-v6支持,请使用 如果需要node-v4支持,请使用产品特点 用法npm install wechat-jssdk --save# oryarn add wechat-jssdk const { Wechat } = require ( '...
节点不匹配用于与 接口的和库。入门将库安装到 Node.js 或 io.js 中: npm ... MISFIT_CLIENT_SECRET , redirectUri : process . env . MISFIT_REDIRECT_URI} ) ;var authorizeUrl = misfitHandler . getAuthorizeU
,sokcet有时可能会断开连接,需要重新连接以通知套接字Google Oauth 400 redirect_uri_mismatch错误请确保更新客户端ID客户端密钥并将网址添加到授权JavaScript来源授权的重定向URI 来自参考课程该项目的文件app.js...
## Node JS SDK for Zoho CRM ##抽象的 Node SDK是Zoho CRM API的包装。 因此,从您的Node应用...- Enter Client Name, Client Domain and Redirect URI. - Select the Client Type as "Web based". - Click “Cre
安装 node.js npm install puntopagos-node 如何使用 var puntoPagos = require ( 'puntopagos-node' ) ; // Config current deployment ...// err, data -> {token:token, redirect:redirect} // Validate payament
嘿!这是全栈电子商务应用程序的前端部分。...该项目已经部署在Heroku上。...3,但需要花一分钟时间来加载) ...REACT_APP_REGISTER_REDIRECT_URL = “ ”REACT_APP_FORGOTPASSWORD_REDIRECT_URL =“ ”RE