Node.js和Express简单入门介绍(2)

setInterval():用于每隔一定毫秒调用回调函数。由于系统因素,可能无法保证每次调用之间正好间隔指定的毫秒数,但只会多于这个间隔,而不会少于它。指定的毫秒数必须是1到2,147,483,647(大约24.8天)之间的整数,如果超过这个范围,会被自动改为1毫秒。该方法返回一个整数,代表这个新建定时器的编号。

clearInterval():终止一个用setInterval方法新建的定时器。

require():用于加载模块。

Buffer():用于操作二进制数据。

3.5 Node.js的核心模块

如果只是在服务器运行JavaScript代码,用处并不大,因为服务器脚本语言已经有很多种了。Node.js的用处在于,它**本身**还提供了一系列功能模块,与操作系统互动。这些核心的功能模块,不用安装就可以使用,下面是它们的清单。

http:提供HTTP服务器功能。

url:解析URL。

fs:与文件系统交互。

querystring:解析URL的查询字符串。

child_process:新建子进程。

util:提供一系列实用小工具。

path:处理文件路径。

crypto:提供加密和解密功能,基本上是对OpenSSL的包装。

三、搭建web应用

​ 使用Node.js搭建web服务器,一般使用一些框架来帮助完成。

​ express 是一个开源的node.js项目框架,初学者使用express可以快速的搭建一个Web项目,express中已经集成了Web的http服务器创建、请求和文件管理以及Session的处理等功能,所以express是非常适合初学者的入门学习。

3.1 安装Express框架

使用node.js自带的包管理器npm安装。

创建一个项目目录,Node_Hello。进入该目录,创建一个package.json文件,文件内容如下:

{ "name": "Node_Hello", "description": "nodejs hello world app", "version": "0.0.1", "private": true, "dependencies": { "express": "4.x" } }

上面代码定义了项目的名称、描述、版本等,并且指定需要4.0版本以上的Express。

==从控制台首先进入刚才的项目目录==,然后输入如下命令,则会开始下载Express。

npm install

Node.js和Express简单入门介绍

下载完成

Node.js和Express简单入门介绍

Node.js和Express简单入门介绍

3.2 创建启动文件

​ 在上面的项目目录下,新建一个启动文件,名字暂叫 ==index.js== 。书写如下代码:

var express = require('express'); var app = express(); app.get('https://www.jb51.net/', function (req, res) { res.send('<h1>你好,这是我们的第一个nodejs项目</h1>'); }); app.listen(8080);

3.3 运行index.js文件

node index.js

3.4 使用浏览器访问

在浏览器输入下面的地址就可以访问我们刚刚搭建的web网站了。

:8080

四、使用Webstorm搭建Node.js web应用

​ 使用webstorm搭建Node.js应用更加方便。

4.1 下载WebStorm,并安装

下载Webstorm:https://www.jb51.net/softs/507325.html

下载完成后,直接安装即可。

4.2 创建Node + Express应用

Node.js和Express简单入门介绍

4.3 Project目录结构

Node.js和Express简单入门介绍

app.js:启动文件,或者说入口文件

package.json:存储着工程的信息及模块依赖,当在 dependencies 中添加依赖的模块时,运行 npm install ,npm 会检查当前目录下的 package.json,并自动安装所有指定的模块

node_modules:存放 package.json 中安装的模块,当你在 package.json 添加依赖的模块并安装后,存放在这个文件夹下

public:存放 image、css、js 等文件

routes:存放路由文件

views:存放视图文件或者说模版文件

bin:存放可执行文件(www)

4.4 各个主要文件的说明

4.4.1 app.js

//加载模块 var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); //加载路由文件 var index = require('./routes/index'); var users = require('./routes/users'); // 生产一个express的实例 var app = express(); // view engine setup /* 设置 views 文件夹为存放视图文件的目录, 即存放模板文件的地方,__dirname 为全局变量, 存储当前正在执行的脚本所在的目录。 */ app.set('views', path.join(__dirname, 'views')); //设置模板引擎为ejs app.set('view engine', 'ejs'); // uncomment after placing your favicon in /public //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); //加载日志中间件 app.use(logger('dev')); //加载解析json的中间件 app.use(bodyParser.json()); //加载解析urlencoded请求体的中间件。 post请求 app.use(bodyParser.urlencoded({extended: false})); //加载解析cookie的中间件 app.use(cookieParser()); //设置public文件夹为放置静态文件的目录 app.use(express.static(path.join(__dirname, 'public'))); // 路由控制器。 app.use('https://www.jb51.net/', index); // :3000 app.use('/users', users); //http://localhost:3000/users // catch 404 and forward to error handler app.use(function (req, res, next) { var err = new Error('Not Found'); err.status = 404; next(err); }); // error handler app.use(function (err, req, res, next) { // set locals, only providing error in development res.locals.message = err.message; res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page res.status(err.status || 500); res.render('error'); }); //把app导出。 别的地方就可以通过 require("app") 获取到这个对象 module.exports = app;

4.4.2 bin/www

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwyspg.html