轻松创建nodejs服务器(3):代码模块化


Posted in NodeJs onDecember 18, 2014

nodejs的功能块大都以模块的形式存在的。

通常会有一个统一入口index.js,然后调用不同的模块来完成我们需要的功能。

我们先来看看怎么把server.js变成一个模块让 index.js 主文件使用。

var http = require("http");

...

http.createServer(...);

“http” 是nodejs自带的模块,我们在我们的代码中请求它并把返回值赋给一个本地变量。 我们可以用这个变量来调用 http 模块所提供的公共方法的对象,变量名不是固定的,你完全可以按照你的喜好来命名这个变量,不过我建议直接用模块名来做变量名,可以使代码可读性更高些。

我们按这个方式改一下server.js里的代码,我们把代码放到start()函数里,并通过expors将代码提供给其他页面引用。

var http = require("http");

function start() {

 function onRequest(request, response) {

  console.log("Request received.");

  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 并在其中启动我们的HTTP了,虽然服务器的代码还在 server.js 中。

创建 index.js 文件并写入以下内容:

var server = require("./server");

server.start();

执行node index.js

这样做就可以把应用的不同部分放入不同的文件里,并且通过生成模块的方式把它们连接到一起了。

下一节我们要了解一下路由

NodeJs 相关文章推荐
NodeJS 模块开发及发布详解分享
Mar 07 NodeJs
Jquery通过ajax请求NodeJS返回json数据实例
Nov 08 NodeJs
Nodejs 发送Post请求功能(发短信验证码例子)
Feb 09 NodeJs
nodejs入门教程六:express模块用法示例
Apr 24 NodeJs
nodejs中解决异步嵌套循环和循环嵌套异步的问题
Jul 12 NodeJs
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
Sep 18 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
nodejs基础之buffer缓冲区用法分析
Dec 26 NodeJs
nodejs 使用http进行post或get请求的实例(携带cookie)
Jan 03 NodeJs
nodejs中request库使用HTTPS代理的方法
Apr 30 NodeJs
详解利用nodejs对本地json文件进行增删改查
Sep 20 NodeJs
详解NodeJS模块化
Jun 15 NodeJs
轻松创建nodejs服务器(2):nodejs服务器的构成分析
Dec 18 #NodeJs
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
Dec 18 #NodeJs
Nodejs实现多人同时在线移动鼠标的小游戏分享
Dec 06 #NodeJs
Nodejs实现的一个静态服务器实例
Dec 06 #NodeJs
nodejs中简单实现Javascript Promise机制的实例
Dec 06 #NodeJs
nodejs实现的一个简单聊天室功能分享
Dec 06 #NodeJs
详谈nodejs异步编程
Dec 04 #NodeJs
You might like
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
Prototype使用指南之array.js
2007/01/10 Javascript
Javascript 构造函数,公有,私有特权和静态成员定义方法
2009/11/30 Javascript
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
JavaScript 原型与继承说明
2010/06/09 Javascript
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
2013/05/26 Javascript
JS预览图像将本地图片显示到浏览器上
2013/08/25 Javascript
jQuery中[attribute=value]选择器用法实例
2014/12/31 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
2015/03/04 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
javascript按顺序加载运行js方法
2017/12/01 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
2018/05/16 Javascript
layui问题之模拟select点击事件的实例讲解
2018/08/15 Javascript
vue.js中使用echarts实现数据动态刷新功能
2019/04/16 Javascript
如何使用 vue-cli 创建模板项目
2020/11/19 Vue.js
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
Python 探针的实现原理
2016/04/23 Python
详解python实现线程安全的单例模式
2018/03/05 Python
Python操作mongodb的9个步骤
2018/06/04 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
PyQt5使用QTimer实现电子时钟
2019/07/29 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
迷你唐卡软皮鞋:Minnetonka Moccasin
2018/05/01 全球购物
大四毕业生学习总结的自我评价
2013/10/31 职场文书
运动会广播稿80字
2014/01/23 职场文书
2014年司法所工作总结
2014/11/22 职场文书
团员年度个人总结
2015/02/26 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
销售人员管理制度
2015/08/06 职场文书
小学运动会开幕词
2016/03/04 职场文书