小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
express
express 启动一个小型服务器
Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用
丰富的HTTP工具以及来自Connect框架的中间件随取随用,创建强健、友好的API变得快速又简单
简单小栗子:
### express()
创建一个express应用程序
```js
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('hello world');
});
app.listen(3000);
## 具体项目代码实现:
首先安装 express 引入, 初始化一个服务, 然后启动项目服务
```js
const express = require('express')
const data = require('./data')
const fs = require('fs')
const url = require('url')
var app = express()
使用静态资源中间件 (middleware)
app.use(express.static('views'))
app.set('view engine', 'ejs')
app.get('/', (req, res) => {
res.send('hello world')
})
app.get('/list/:no?', (req, res) => {
//:no 为参数必须为这个, ? 表示这个参数可以有可以无
n = Number(req.params.no)
if (!n && n != 0) n = 1
res.render('list', {
list: data.list,
})
})
app.get('/add*', (req, res) => {
var obj = url.parse(req.url, true)
data.list.push(obj.query.item)
fs.writeFileSync('./data.json', JSON.stringify(data))
res.render('list', {
list: data.list,
n: data.list.length - 1,
})
})
app.get('/del/:num?', (req, res) => {
var num = req.params.num * 1
data.list.forEach((index, item) => {
if (num == item) {
data.list.splice(index, 1)
fs.writeFileSync('./data.json', JSON.stringify(data))
res.render('list', {
list: data.list,
n: data.list.length - 1,
})
}
})
console.log(num)
})
app.get('/modify/:num', (req, res) => {
var num = req.params.num * 1
var item = data.list[num]
res.render('modify', {
num: num,
item: item,
})
})
app.get('/modify*', (req, res) => {
var obj = url.parse(req.url, true)
data.list[obj.query.num] = obj.query.item
fs.writeFileSync('./data.json', JSON.stringify(data))
res.render('list', {
list: data.list,
n: data.list.length - 1,
})
})
// app.get('/data',(req,res)=> {
// res.json(data)
// })
var ser = app.listen(2000, () => {
console.log('listen ' + ser.address().port + '...')
})