node.js + express + mongodb

1、一些常用的插件和中间件

const sd = require('silly-datetime') // 格式化时间插件

// parse()将url请求地址后的参数转化为对象,stringify()把对象转化为url后的参数
const querystring = require('querystring') 

// bodyparser模块配置 处理post请求获取参数 req.body就是传进来的参数对象
const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({
    
     extended: false })) // parse application/x-www-form-urlencoded
app.use(bodyParser.json()) // parse application/json

// 作用:解析表单 可以对文件上传的二进制文件做处理, body-parser模块无法对文件处理
const formidable = require('formidable')
const form = new formidable.IncomingForm();
form.uploadDir="./uploads";  //设置上传图片地址
form.parse(req,function(err,fields,files){
    
    
 	// err错误对象 如果解析失败包含错误信息 解析成功nan
    // fields 存储普通请求参数 对象类型 {属性:值}  保存除了二进制文件外的其他表单数据
    // files 对象类型  存储上传的文件信息 
	console.log(err,fields,files)
})

// cookie-parser是一个用于cookie签名和签名解析的中间件
const cookieParser = require('cookie-parser')
app.use(cookieParser())
// app.use((cookiePaser('传入的密钥')) // 有签名
app.get('/', function (req, res) {
    
    
  // 没有签名的cookie值从请求的cookies获取
  console.log('cookies: ', req.cookies)
  // 签名的cookie值从请求的signedCookies里获取
  console.log('signed cookies: ', req.signedCookies)
  // 需要签名singed为true
  res.cookie('name','jll',{
    
    
	maxAge: 30*1000,
	signed:true	//	这个设为true即可对该cookie签名
  })

  // 不需要签名不传signed
  res.cookie('age', '22')
})

2、开启服务器

const express = require('express');
const app  = express();
app.listen(3000,'127.0.0.1', () => console.log('请访问:http://127.0.0.1:3000'))

3、使用express的一些细节

// 静态文件加载
app.use(express.static("./public"));

// 使用html做模板渲染需要这一步骤, ejs则不需要
app.engine("html",ejs.__express); 
app.set('view engine', 'html')

// 固定模板存放文件夹views.文件后缀为ejs
app.set("view engine","ejs");

// use() 所有路由都可以经过 get() post() delete()
app.use((req,res,next)=>{
    
    
    // 过滤
    console.log("use路由");
    // next() 跳出当前路由,可执行下一个路由
    next();
})

app.get("/",(req,res)=>{
    
     // app.get() app.post() ...
	res.render('form') // 到view文件夹寻找form.ejs文件渲染到页面上
	// res.send()渲染在网页上,res.json({name:''})想接口一样返回一个对象
    res.send("请打开http://127.0.0.1:3000/add.html") 
})

4、mongodb数据库

const mongodb = require('mongodb')
const mongoClient = mongodb.MongoClient
const url = 'mongodb://127.0.0.1:27017'
// 连接数据库
mongoClient.connect(url, {
    
     useNewUrlParser: true }, (err, db) => {
    
    
    if (err) throw err
    db.db('test') // 连接test数据库
      .collection('user') // 操作test数据库的user集合
      .find() // 操作数据方法
      .toArray((err, data) => {
    
     // 查询需要使用这个方法查看数据
        if (err) res.send('插入失败!')
        res.send(data)
        db.close() // 关闭链接数据库
      })
  })

猜你喜欢

转载自blog.csdn.net/dncsdnf/article/details/131991629