nodejs学习二:环境搭建

安装nodejs + postman + phpstudy + vscode

创建项目

  1. 创建文件夹nodejs(项目名称)

  2. 文件夹内创建src/app.js

    // app.js
    const express = require('express')
    const bodyParser = require('body-parser')
    const app = express()
    // 跨域处理
    app.all('*', function(req, res, next) {
        res.header("Access-Control-Allow-Origin", "*");
        res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
        res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
        res.header("X-Powered-By",' 3.2.1')
        if(req.method=="OPTIONS") res.send('200');/*让options请求快速返回*/
        else  next();
    });
    // 处理body传参
    app.use(bodyParser.urlencoded({ extended: false }))
    app.use(bodyParser.json())
    
    
    // 子路由
    const login = require('./api/login')
    const user = require('./api/user')
    
    app
      .use(user)
      .use(login)
    
    
    app.listen(3000, () => {
      console.log('服务器开启127.0.0.1:3000')
    })
    
  3. 安装express + mysql + mysql2 + body-parser + sequelize + sequelize-cli + nodemon (-dev)

  4. 初始化sequelize-cli: https://sequelize.org/master/manual/migrations.html

/config/: 数据库的配置

/migrations/: 数据库迁移文件

/models/: 模型文件夹,每一个js文件会和sql表关联

/seeders/: 初始化脚本,每一个表的初始化数据

  1. 数据库创建:sequelize_demo

  2. 配置config/config.json

  {
  "development": {
    "username": "root", // 账号
    "password": "******", // 密码
    "database": "sequelize_demo", // 数据库名
    "host": "127.0.0.1", // 地址
    "dialect": "mysql", // 语法
    "timezone": "+08:00" // 中国:时区加8小时
  },
  "test": {
    //...
  },
  "production": {
    //...
  }
}
  1. 创建模型文件:npx sequelize-cli model:generate --name user --attributes name:String

User: 模型名称,根据模型创建表时,系统会自动将表名复数化:模型名user —> 表名users
attributes: 模型的属性,相当于数据库的字段和字段类型
这会在models文件夹内创建一个user.js文件,在migrations创建一个对应的js文件(数据库迁移js文件)

  1. 在app.js中引入模型

const models = require(’…/models’)
调用:models.user, 调用user模型
调用:models.Sequlize,调用Sequlize类
调用:models.sequlize,调用sequlize实例
上面的调用都是自动生成的

  1. 持久化,创建mysql表: npx sequelize-cli db:migrate --env=development

–env=development: --env后面跟的是环境,对应config/config.json里面的字段,此命令会根据migrations的js文件创建表(先删后建)
生成的表名称会多一个s,即users

  1. 配置nodemon,自定义启动命令
  // package.jcon文件
  "scripts": {
    "dev": "nodemon src/app.js"
  },

控制台运行 npm run dev 就可以自动重启nodejs
若不配置上面参数,可以直接通过 nodemon src/app.js 启动nodejs

  1. 生产环境及运维(服务器端支持)

pm2: 集群
安装: npm install -g pm2
初始化: pm2 init 生成文件ecosystem.config.js

module.exports = {
  apps : [{
    name: 'test', // 自定义名称
    script: './src/app.js', // 启动文件
    instances: 1, // 实例个数(线程,nodejs是单线程的,但是在多核下可以实现多线程)
    autorestart: true, // 服务异常的时候自动重启
    watch: false, // 生产环境关掉
    max_memory_restart: '1G',
    env: { // 启动环境
      NODE_ENV: 'development'
    },
    env_production: {
      NODE_ENV: 'production'
    }
  }],
};

启动:pm2 start ecosystem.config.js
重启:pm2 reset (id)
日志:pm2 log
停止:pm2 stop (id)
列出所有进程/应用:pm2 list
id替换成all,表示全部执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mosowe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值