node基础笔记

// 1.自动重启插件
    npm i -S nodemon

    node XXX.js  => nodemon XXX.js

// 2.配置模版引擎
    (1)下载
    npm i -S art-template
    npm i -S express-art-template

    (2)配置
    app.engine('html', require('express-art-template'))

    (3)使用
    app.get('/', (req, res) => {
        res.render('index.html', {
            title: 'hello world'
        })
    })

// 3.公开资源(中间件)
    app.use('/node_modules/', express.static('./node_modules/'))

// 4.fs readFile 的第二个参数 说明
    fs.readFile('./XXX', 'utf8', (err, data) => {
        if (err) {
            return XXX
        }
        console.log(data)
    })
    如果有第二个参数,将按照第二个参数的编码自动转换数据,也就是说不需要data.toString()可以直接拿到字符串数据

// 5.views文件夹
    render('index.html', {})
    会默认去views文件夹下寻找index.html


// 6.post请求插件
    (1)下载
    npm i -S body-parser

    (2)配置
    var bodyParser = require('body-parser')

    // application/x-www-form-urlencoded
    app.use(bodyParser.urlencoded({ extended : false}))
    
    // application/json
    app.use(bodyParser.json())

    (2) 使用 -- 要在路由挂载之前使用 app.use(router) 之前
    app.use((req, res) => {
        console.log(req.body)
    })

// 7.获取异步数据 -- 回调函数
    function fn (callback) {
        setTimeout(() => {
            let data = 'abc'
            callback(data)
        }, 1000)
    }

    fn((data) => {
        console.log(data)
    })

// 8.模块化的标志 是require 和 export
    js本身天生不支持模块化  (第三方库可以帮js做到模块化)
        1)require.js AMD
        2)sea.js     CMD
    node 才有模块化 (在node中有commonJS模块化规范)

// 9.package.json 与 package-lock.json
    新版本node 会生成package-lock.json,老版本不会生成(npm 5 以后会有)
    package-lock.json 会保存所有依赖信息(包括下载地址)加快重新下载速度
    package-lock.json 会锁定版本,不会让依赖自动更新到最新版本

// 10.mongodb 
    1)开启
        cd /usr/local/mongodb/bin
        sudo ./mongod
    2)连接
        cd /usr/local/mongodb/bin 
        ./mongo
    3)离开
        exit

    4)基本命令
        show dbs -- 查看数据库
        db.dropDatabase()  -- 删除当前数据库
        use name -- 使用(切换)数据库,如果没有就新建(不是及时新建)
        db -- 查看当前数据库(默认在test数据库)

        db.[objName].insertOne({"name": "zhangsan"}) -- 添加数据
        show collections -- 查看当前数据库下的集合
        db.[objName].find() -- 查看数据库下集合里面的数据

// 11.express 数据返回
    res.status(200).json({
        success: true,
        data: {}
    })

// 12.session
    1)下载
        npm i express-session
    2)配置
        var session = require('express-session')
        app.use(session({
            secret: 'keyboard cat',
            resave: false,
            saveUninitalized: true
        }))
    3)使用
        req.session.XXX 获取
        req.session.XXX = XXX 赋值
        delete req.session.XXX 删除

// 13.关于重定向
    1)服务器只能在同步重定向
        a标签连接  -- 同步
        form action -- 同步
    2)异步需要客户端重定向跳转

// 14.node绝对路径
    var path = require('path')
    path.join(__dirname)

// 15. 404 与 错误
    app.use((req, res, next) => {
        console.log(404)
    })

    app.use((err, req, res, next) => {
        res.status(500).json(err)
    })

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值