nodejs系列(2)建立Node项目工程目录与初试Express框架

如何建立工程目录?

一个好的工程目录,不仅仅是分分模块目录,更重要的目的是为了利于团队迭代开发和系统维护升级。我常用的Node.js项目目录如下所示(本目录仅作为参考,应以自己的实际项目需求为依据建立):

nodejs系列(2)建立Node项目工程目录与初试Express框架_第1张图片

core目录:存放核心代码,如数据库交互、关键逻辑等脚本文件 。

public目录:存放静态资源。

assets目录:存放如图片、音频、视频等静态资源。

css目录:存放css样式静态资源。

js目录:存放如jQuery等第三方类库。

temp目录:存放临时静态资源。

routes目录:类似于Java的Action,存放每个接口的处理的脚本。

utils目录:存放一些自定义的公共js文件,如HashMap.js等。

views目录:存放.html等界面页面文件。

其中,index.js为入口文件。


初试Express框架

Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你更便捷创建各种 Web 应用和丰富的 HTTP 工具。安装 Express 命令行如下:

$ cnpm install express
以上命令会将Express框架安装在当前目录的node_modules目录中,node_modules目录下会自动创建express 目录。为了便于模块间的关联开发及应用,建议以下几个重要的模块也一起安装:
$ cnpm install express (Web应用框架)
$ cnpm install body-parser (node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据)
$ cnpm install cookie-parser (这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象)
$ cnpm install multer (node.js 中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据)
$ cnpm install mysql (用于处理数据库操作)
$ cnpm install mime (用于解析文件mime类型)
$ cnpm install multiparty (用于解析FormData格式数据)
在views目录下创建一个hello.html文件,源码如下:


	
		
		
	

	
		Hello World
	
在入口文件 index.js写入代码如下:
var express = require('express');
var app = express();
app.use(express.static('public')); //指定静态资源文件夹

/********************hello world测试用例********************/
app.get('/hello.html', function(req, res) {
	res.sendFile(__dirname + "/views/hello.html");
});

/********************搭建服务监听********************/
var server = app.listen(8081, "127.0.0.1", function() {
	var host = server.address().address;
	var port = server.address().port;
	console.log("应用实例,访问地址为 http://" + host + ":" + port);
	console.log("-------------------------------------------------");
});

(注)这里为什么要指定静态资源文件夹呢?这就解决了上篇中提到的问题,所有资源通过node.js服务访问都需要指定文件类型,通过指定静态资源文件夹,框架可以自动赋予文件类型,只要在静态资源文件夹目录内,都可以直接通过路径访问到该资源。如 http://127.0.0.1:8081/assets/img1.jpg,此处注意一个坑,public目录是不用加到地址上。

通过doc环境执行该index.js文件,如图所示:

nodejs系列(2)建立Node项目工程目录与初试Express框架_第2张图片

在浏览器输入地址:http://127.0.0.1:8081/hello.html

nodejs系列(2)建立Node项目工程目录与初试Express框架_第3张图片

上例为Express 框架创建的一个web页面。当然服务端不可能这么简单,服务端至少还应包括:GET实现、POST实现、COOKIE实现、文件上传和数据库等操作。下篇将详细介绍这些实用功能。

你可能感兴趣的:(前端集合,nodejs)