轻松创建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事件的监听与触发的理解分析
Feb 12 NodeJs
Windows 系统下设置Nodejs NPM全局路径
Apr 26 NodeJs
nodejs个人博客开发第七步 后台登陆
Apr 12 NodeJs
详解使用nodeJs安装Vue-cli
May 17 NodeJs
nodejs 图解express+supervisor+ejs的用法(推荐)
Sep 08 NodeJs
详解IWinter 一个路由转控制器的 Nodejs 库
Nov 15 NodeJs
nodejs结合socket.io实现websocket通信功能的方法
Jan 12 NodeJs
nodejs多版本管理总结
Apr 03 NodeJs
nodejs检测因特网是否断开的解决方案
Apr 17 NodeJs
nodejs通过钉钉群机器人推送消息的实现代码
May 05 NodeJs
NodeJs生成sitemap站点地图的方法示例
Jun 11 NodeJs
Nodejs监听日志文件的变化的过程解析
Aug 04 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 和 MySQL 基础教程(三)
2006/10/09 PHP
WordPress中调试缩略图的相关PHP函数使用解析
2016/01/07 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
详细介绍8款超实用JavaScript框架
2013/10/25 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
jquery事件preventDefault()方法用法实例
2015/01/16 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
AngularJS ui-router (嵌套路由)实例
2017/03/10 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
node.js 利用流实现读写同步,边读边写的方法
2017/09/11 Javascript
React-Native使用Mobx实现购物车功能
2017/09/14 Javascript
新手vue构建单页面应用实例代码
2017/09/18 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
2016/06/02 Python
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
基于python实现学生管理系统
2018/10/17 Python
详解python列表生成式和列表生成式器区别
2019/03/27 Python
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
浅谈amaze-ui中datepicker和datetimepicker注意的几点
2020/08/21 HTML / CSS
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
土耳其玩具商店:Toyzz Shop
2019/08/02 全球购物
Luxplus荷兰:以会员价购买美容产品等,独家优惠
2019/08/30 全球购物
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
新闻专业个人自我评价
2013/09/21 职场文书
高一家长会邀请函
2014/01/12 职场文书
高中生活自我鉴定
2014/01/18 职场文书
优秀学生干部推荐材料
2014/02/03 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
pt-archiver 主键自增
2022/04/26 MySQL