node.js中允许的app对象声明方式
- 伪对象形式
app = function () {
console.log("我是一个初始化的app对象");
};
app.get=function () {
console.log('这是一个app的get方法');
};
app.post = function () {
console.log('这是一个post方法');
};
app();
app.post();
输出结果
我是一个初始化的app对象
这是一个post方法
- 一个增强的伪对象
G={};
var app = function (req,res) {
if (G['login'])
{
G['login'](req,res);
}
};
app.get=function (urlinstring,callback) {
G[urlinstring]=callback;
};
app.get('login',function (req,res) {
//注意,这里的req和res并非http server中的请求和相应对应的req和res
console.log("这是login方法用到的参数req的值:"+req);
console.log('this is a module for login');
});
setTimeout(function (){
app("嘿~人参娃哟~,嘿真机灵","人参王国片头曲");
},);
输出结果:
这是login方法用到的参数req的值:嘿~人参娃哟~,嘿真机灵
this is a module for login
- 进化版本(新建一个文件夹logic,新起一个文件myserver.js,根据需要,总之新文件一定要有)
var http =require('http');
var app = require('./logic/apphandler');
http.createServer(app).listen();//一旦app对象作为http createServer方法的参数req和res就分别代表http的请求和响应
- 再起一个文件(apphandler.js)
G={};
var url= require('url');
var app = function (req,res) {
var urlobj = url.parse(req.url);
var pathname = urlobj.pathname;
res.writeHead(,{'Content-Type':'text/html;charset=UTF-8'});
console.log("pathname: "+pathname);
if (G[pathname])
{
G[pathname](req,res);
}
else
{
G['/'](req,res);
}
};
app.get=function (urlinstring,callback) {
G[urlinstring]=callback;
};
app.get('/login',function (req,res) {
res.write("这是login方法用到的参数req的值:"+req);
res.end('this is a module for login');
});
app.get('/',function (req,res) {
var pathname=url.parse(req.url).pathname;
res.end("这是首页");
//console.log('this is a module for login');
});
/*
setTimeout(function (){
app("嘿~人参娃哟~,嘿真机灵","人参王国片头曲");
},3000);*/
module.exports=app;
输出结果:


node.js中允许的app对象声明方式的更多相关文章
- JS中遍历数组、对象的方式
1.标准的for循环遍历数组 //不打印自定义属性和继承属性 var array = [1,2,3]; for (var i = 0; i < array.length; i++) { cons ...
- 如何在Node.js中合并两个复杂对象
通常情况下,在Node.js中我们可以通过underscore的extend或者lodash的merge来合并两个对象,但是对于像下面这种复杂的对象,要如何来应对呢? 例如我有以下两个object: ...
- Node.js中的Session,不要觉得简单哦。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博客地址为http://www.cnblogs.com/jasonnode/ .学习网站上有对应 ...
- node.js中express模块创建服务器和http模块客户端发请求
首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文 ...
- Node.js中环境变量process.env详解
Node.js中环境变量process.env详解process | Node.js API 文档http://nodejs.cn/api/process.html官方解释:process 对象是一个 ...
- 在Node.js中操作文件系统(一)
在Node.js中操作文件系统 在Node.js中,使用fs模块来实现所有有关文件及目录的创建,写入及删除操作.在fs模块中,所有对文件及目录的操作都可以使用同步与异步这两种方法.比如在执行读文件操作 ...
- 深入理解Node.js中的垃圾回收和内存泄漏的捕获
深入理解Node.js中的垃圾回收和内存泄漏的捕获 文章来自:http://wwsun.github.io/posts/understanding-nodejs-gc.html Jan 5, 2016 ...
- node.js中的url.parse方法使用说明
node.js中的url.parse方法使用说明:https://blog.csdn.net/swimming_in_it_/article/details/77439975 版权声明:本文为博主原创 ...
- node.js中模块和包
node.js中模块和包 什么是模块 如何创建并加载模块 1. 创建模块 2. 单次加载 3. 覆盖 exports 如何创建一个包 1. 作为文件夹的模块 2. package.json 如何使用包 ...
随机推荐
- 路由器03---k1去广告
HOST文件 block.hosts:https://github.com/Diumo/ADhosts 由于k1的硬件限制,8M的Flash.在没有硬改的情况下,路由无法安装太多的插件,包括众所周知的 ...
- C++之父给 C 程序员的建议
1. 在 C++中几乎不需要用宏, 用 const 或 enum 定义显式的常量, 用 inline 避免函数调用的额外开销,用模板去刻画一族函数或类型,用 namespace 去避免命名冲突. 2. ...
- 对快速排序的理解以及相关c++代码
快速排序:在一组数据中,可以将左边的数字当作枢轴(右边也可以),接下来要做的就是,先从右边找到比枢轴小的数, 再从左边找到比枢轴大的数,接着将这两个数进行交换,重复上述步骤找出所有符合条件的数进行交换 ...
- UPUPW Apache5.5系列本地开发环境配置
UPUPW Apache5.5系列 1. 在官网下载 Apache5.5系列,选择云端下载. 官网地址: http://www.upupw.net/aphp55/n110.html 2. 下载后,将压 ...
- Java坑人面试题之自动装箱和拆箱后的引用数据类型和基本数据类型的计算
在Java1.5以后的版本中,引用类型Integer和基本数据类型int之间是可以通过自动装箱和拆箱进行计算的 例如: Integer in = 1; //it means Integer in = ...
- Docker系列5--一些问题及解决
1. 存储问题 1.1 挂载目录权限问题 在使用swarm创建服务的时候要挂载存储来获取运行文件,及写日志出去. 可运行文件相当于在集群中所有地方应该都能访问到,所以使用了NFS文件系统,在集群中所有 ...
- vscode安装
vscode是一个很好用而且开源的编辑器,支持多种编程语言,这里稍微总结一下使用,省的以后再安装时候再百度查 下载地址:https://code.visualstudio.com/,打开以后点击dow ...
- Bitbucket入门手册
老大要我去调研一下有什么好用的免费软件版本管理工具,有利于小团队开发的.我第一个想到的就是git,经常在git下东西,听说它的代码仓库好用,于是就注册了一个github的账号,创建仓库的时候才发现只能 ...
- 转------深入理解--Java按值传递和按引用传递
引言 最近刷牛客网上的题目时碰到不少有关Java按值传递和按引用传递的问题,这种题目就是坑呀,在做错了n次之后,查找了多方资料进行总结既可以让自己在总结中得到提高,又可以让其他人少走弯路.何乐而不为? ...
- restTemplate源码解析(五)处理ClientHttpResponse响应对象
所有文章 https://www.cnblogs.com/lay2017/p/11740855.html 正文 上一篇文章中,我们执行了ClientHttpRequest与服务端进行交互.并返回了一个 ...