• 伪对象形式
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对象声明方式的更多相关文章

  1. JS中遍历数组、对象的方式

    1.标准的for循环遍历数组 //不打印自定义属性和继承属性 var array = [1,2,3]; for (var i = 0; i < array.length; i++) { cons ...

  2. 如何在Node.js中合并两个复杂对象

    通常情况下,在Node.js中我们可以通过underscore的extend或者lodash的merge来合并两个对象,但是对于像下面这种复杂的对象,要如何来应对呢? 例如我有以下两个object: ...

  3. Node.js中的Session,不要觉得简单哦。

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博客地址为http://www.cnblogs.com/jasonnode/ .学习网站上有对应 ...

  4. node.js中express模块创建服务器和http模块客户端发请求

    首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文 ...

  5. Node.js中环境变量process.env详解

    Node.js中环境变量process.env详解process | Node.js API 文档http://nodejs.cn/api/process.html官方解释:process 对象是一个 ...

  6. 在Node.js中操作文件系统(一)

    在Node.js中操作文件系统 在Node.js中,使用fs模块来实现所有有关文件及目录的创建,写入及删除操作.在fs模块中,所有对文件及目录的操作都可以使用同步与异步这两种方法.比如在执行读文件操作 ...

  7. 深入理解Node.js中的垃圾回收和内存泄漏的捕获

    深入理解Node.js中的垃圾回收和内存泄漏的捕获 文章来自:http://wwsun.github.io/posts/understanding-nodejs-gc.html Jan 5, 2016 ...

  8. node.js中的url.parse方法使用说明

    node.js中的url.parse方法使用说明:https://blog.csdn.net/swimming_in_it_/article/details/77439975 版权声明:本文为博主原创 ...

  9. node.js中模块和包

    node.js中模块和包 什么是模块 如何创建并加载模块 1. 创建模块 2. 单次加载 3. 覆盖 exports 如何创建一个包 1. 作为文件夹的模块 2. package.json 如何使用包 ...

随机推荐

  1. 乐字节Java反射之四:反射相关操作

    大家好,乐字节小乐继续为Java初学者讲述Java基础知识.上次说到乐字节Java反射之三:方法.数组.类加载器,这次是Java反射之四:反射相关操作 1.操作属性 //1.获取Class对象 Cla ...

  2. [转帖]linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)

    linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习) https://www.cnblogs.com/caozy/p/9261224.html 总结的挺好的 ...

  3. oracle多表关联查询和子查询

    oracle多表关联查询和子查询 一.多表关联查询 例子: SQL> create table student1 ( sid ), sname ), sage )); Table created ...

  4. VUE创建项目

    Vue Cli项目搭建     vue项目需要自建服务器:node 什么是node: 用C++语言编写,用来运行JavaScript语言 node可以为前端项目提供server (包含了socket) ...

  5. 四、poll()、select()和epoll()

    在用户程序中,poll()和select()系统调用用于对设备进行无阻塞访问.poll()和select()最终会调用设备驱动中的poll()函数,在我所使用的Linux内核中,还有扩展的poll() ...

  6. tuxedo10g3R的安装过程(原文url:http://www.cnblogs.com/xianfish/articles/1955244.html)

      RHEL 5.1 32Bit 安装配置TUXEDO 10R3 [前言]: 目的: 在Linux上安装配置Tuxedo 10R3 环境: RHEL 5.1 32Bit [前提条件]: 下载Tuxed ...

  7. SpinWait

    其实SpinWait的code 非常简单,以前看过很多遍,但是从来都没有整理过,整理也是再次学习吧. 我们先看看SpinWait的一些评论或者注意点吧:如果等待某个条件满足需要的时间很短,而且不希望发 ...

  8. 怎样获取当前对象的原型对象prototype

    1. 使用 Object.getPrototypeOf(); function Person(name){ this.name = name; } var lilei = new Person(&qu ...

  9. HTTP参数污染(参数处理图)

  10. vue语法概要二

    函数 用途 类别 v-html 用于输出html格式的数据 输出 v-bing 用于输出值 输出 v-model 双向绑定 输入和输出 v-if 逻辑判断 分支语句 v-else 同上 分支语句 v- ...