老师,为什么我的代码运行没有任何反应。。。

来源:5-8 Sequelize个性化配置与数据维护策略

o杨飞o

2019-06-20

/core/db.js

const Sequelize = require('sequelize')

const { dbName, host, port, user, password } = require('../config/config').database

const sequelize = new Sequelize(dbName, user, password, {
  dialect: 'mysql', // 指定数据库类型, mysql的驱动 mysql2, 具体的看 sequelize 文档
  host,
  port,
  logging: true, // 打印数据日志
  timezone: '+08:00', // 时区设置
  define: {}
})

// 连接检测
sequelize.authenticate()
.then(() => {
  console.log('Connection has been established successfully.')
})
.catch(err => {
  console.error('Unable to connect to the database:', err)
})

// 同步模型
sequelize.sync()
.then(res => {
  console.log(res, 'init db ok')
})
.catch(err => {
  console.log('init db error', err)
})

module.exports = {
  sequelize
}

models/user.js

const { sequelize } = require('../core/db')

const { Sequelize, Model } = require('sequelize')

class User extends Model {}

User.init({
  id: {
    type: Sequelize.INTEGER, // 整数类型
    primaryKey: true, // 主键
    autoIncrement: true, // 自增长
  },
  nickName: Sequelize.String,
  email: Sequelize.String,
  password: Sequelize.String,
  openid: {
    type: Sequelize.String(64), // 最大长度64
    unique: true // 唯一
  }
}, { sequelize, modelName: 'user' })

app.js

const Koa = require('koa')
const parser = require('koa-bodyparser')
const InitManager = require('./core/init')
const catchError = require('./middlewares/exception')

// 初始化 mysql 模型
require('./models/user')

// 实例化 KOA 类
const app = new Koa()

// 使用中间件,可以获取到 body 传参
app.use(parser())
// 错误处理中间件
app.use(catchError)

// 初始化路由
InitManager.initCore(app)

// 启动服务,监听端口
app.listen(3000)

运行后的输出

╰─ yarn start:dev
yarn run v1.16.0
$ nodemon --inspect-brk
[nodemon] 1.19.0
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node --inspect-brk app.js`
Debugger listening on ws://127.0.0.1:9229/b8558e29-0ef3-461d-98c5-0fd8dd7be2b2
For help, see: https://nodejs.org/en/docs/inspector

不知道为什么,就是没有数据库相关的输出。。。我数据库确定,一定,肯定是开启的,可以用数据库工具连接,配置的账号密码也是正确的。
相关的库也都下载了。。。

{
  "name": "island",
  "version": "1.0.0",
  "license": "MIT",
  "main": "app.js",
  "scripts": {
    "start:dev": "nodemon --inspect-brk",
    "start:prod": "node app.js"
  },
  "dependencies": {
    "axios": "^0.18.0",
    "basic-auth": "^2.0.1",
    "bcryptjs": "^2.4.3",
    "jsonwebtoken": "^8.4.0",
    "koa": "^2.7.0",
    "koa-bodyparser": "^4.2.1",
    "koa-router": "^7.4.0",
    "koa-static": "^5.0.0",
    "lodash": "^4.17.11",
    "module-alias": "^2.2.0",
    "mysql2": "^1.6.5",
    "npm-check": "^5.9.0",
    "require-directory": "^2.1.1",
    "sequelize": "^5.6.1",
    "validator": "^10.11.0"
  },
  "devDependencies": {
    "nodemon": "^1.19.0"
  }
}

mysql的版本是 8.0 这个应该不会有问题吧,有问提至少也应该打印个无法连接吧。。。。

写回答

1回答

o杨飞o

提问者

2019-06-24

解决了,是引用的地方错了,把导入放在下面就行了。。。

const Koa = require('koa')
const parser = require('koa-bodyparser')
const InitManager = require('./core/init')
const catchError = require('./middlewares/exception')

// 实例化 KOA 类
const app = new Koa()

// 使用中间件,可以获取到 body 传参
app.use(parser())
// 错误处理中间件
app.use(catchError)

// 初始化路由
InitManager.initCore(app)

// 初始化 mysql 模型
require('./app/models/user')

// 启动服务,监听端口
app.listen(3000)

这样就没有问题了。。。

1
0

Node.js+Koa2+MySQL打造前后端分离精品项目《旧岛》

理解异步编程本质/培养面向对象思维,独立完成Node.js服务端开发

2223 学习 · 878 问题

查看课程