轻松创建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进程管理模块forever详解
Jun 01 NodeJs
nodejs npm install全局安装和本地安装的区别
Jun 05 NodeJs
NodeJS学习笔记之(Url,QueryString,Path)模块
Jan 13 NodeJs
Windows系统下使用Sublime搭建nodejs环境
Apr 13 NodeJs
用nodejs搭建websocket服务器
Jan 23 NodeJs
nodejs开发——express路由与中间件
Mar 24 NodeJs
nodejs创建简易web服务器与文件读写的实例
Sep 07 NodeJs
nodejs socket服务端和客户端简单通信功能
Sep 14 NodeJs
NodeJS使用Range请求实现下载功能的方法示例
Oct 12 NodeJs
用Electron写个带界面的nodejs爬虫的实现方法
Jan 29 NodeJs
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
Mar 02 NodeJs
NodeJS和浏览器中this关键字的不同之处
Mar 03 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
example2.php
2006/10/09 PHP
php实现约瑟夫问题的方法小结
2015/03/23 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
php简单实现多维数组排序的方法
2016/09/30 PHP
PHP微信分享开发详解
2017/01/14 PHP
JS实现标签页效果(配合css)
2013/04/03 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
javascript打印输出json实例
2013/11/11 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
jQuery获取cookie值及删除cookie用法实例
2016/04/15 Javascript
AngularJS ng-repeat数组有重复值的解决方法
2016/10/23 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
2018/07/27 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
推荐几个不错的console调试技巧实现
2019/12/20 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
Python解决鸡兔同笼问题的方法
2014/12/20 Python
[原创]使用豆瓣提供的国内pypi源
2017/07/02 Python
Python实现自动上京东抢手机
2018/02/06 Python
Python3 io文本及原始流I/O工具用法详解
2020/03/23 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
The Outnet亚太地区:折扣设计师时装店
2019/12/05 全球购物
社区优秀志愿者先进事迹
2014/05/09 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
无子女夫妻离婚协议书(4篇)
2014/10/20 职场文书
婚前协议书范本
2014/10/27 职场文书
单位实习鉴定评语
2015/01/04 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang
DE1107机评
2022/04/05 无线电
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL
Python加密与解密模块hashlib与hmac
2022/06/05 Python