上一章我们了解到,node的web服务使用起来较为繁琐,这就需要外部的模块进行一部分的封装,简化我们的代码
安装该模块
npm install express --save
我们来看官网的介绍:
Fast, unopinionated, minimalist web framework for node. // 快速,无偏见,最低限度的node网络框架。
const express = require('express')
const app = express()
app.get('/', function (req, res) {
res.send('Hello World')
})
app.listen(3000)
可以看到,使用了express之后,我们可以直接使用其get方法来处理get请求。
同时,我们也可以指定静态资源的目录来处理所有的静态资源请求
app.use(express.static("static"));
node中不包含对请求body中的数据进行解析的api,所以需要借助第三方框架来解析
npm install body-parser
var bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({
extended: false })); // 创建 aplication/x-www-form-urlencoded 的解析器
app.use(bodyParser.json()) // 创建 application/json 的解析器
配置完之后,我们使用 res.body 就能直接读取表单数据了
当我们需要使用数据来渲染页面时,就需要一个模板引擎来生成动态的页面
ejs(Embedded JavaScript templates)是一种模板引擎,其语法和jsp类似:
npm install ejs
我们可以使用renderFile方法来渲染页面,并携带数据
ejs.renderFile('./views/inedx.ejs', {
parm:parm}, (err, data) => {
if (err) {
console.log(err);
}
res.writeHead(200, {
'Contend-Type': 'text/html;charset="utf-8"'});
res.end(data);
});
在ejs文件中
可以使用如下标签来使用javascript语句:
<% %> \\ 执行js语句
<%= %> \\ 使用数据
<%- %> \\ 渲染为html标签
同样,我们也可以在node中使用数据库,这里以mysql为例,以后会学习mongoDB
const mysql = require('mysql'); //导入mysql
const config = {
//连接参数
host: 'localhost',
user: 'root',
password: '123',
database: 'myblog',
multipleStatements: true
}
query:function (statement, callback) {
connection = mysql.createConnection(config); // 创建链接
connection.connect(); //链接
connection.query(statement, function (error, results) {
//执行查询
if (error) {
console.log(error)
}
callback(results); // 回调查询结果
connection.end(); // 关闭查询
});
}