使用koa搭建API服务的问题(nodemon/sequelize)

项目环境

  • platform: windows 10
  • node: v10.16.3

问题

Q1. nodemon 进程启动后无法停止?

执行语句:
"scripts": {
    "start": "nodemon -q index.js -r dotenv/config --exec babel-node"
  }

启动服务后,通过 ctrl + c,退出服务。更改项目文件,保存,nodemon 的服务会自动重启。使用 tskill [pid] 杀掉进程后还是会自动重启。

Q2. sequelize 定义的 model 使用 import 引入调用API会报 undefined

models/index.js

import User from './user'
import Project from './project'

// 关联表
Project.belongsTo(User)

export default {
    User,
    Project
}

models/user.js

import Sequelize from 'sequelize'
import sequelize from '../utils/db'

class User extends Sequelize.Model {}

const user = User.init({
    id: {
        type: Sequelize.INTEGER,
        primaryKey: true
    },
    name: Sequelize.STRING(30),
    password: Sequelize.STRING(30),
    phone: Sequelize.STRING(11)
}, {
    sequelize,
    modelName: 'user'
})

// 添加生命周期
// user.addHook()

export default user

controller

// controller/user.js
import U from '../models/user'
import { User } from '../models'

export async function getUserInfo(ctx, next) {
    const { id } = ctx.query
    const data = await User.findOne({
        where: { id: Number(id) }
    })
    ctx.body = { status: 1, message: '', data }
}

如上,通过直接引入 ../models/user 可以正常调用 sequelize instance 上的方法。
如果通过 import { User } from '../models',调用方法时会提示 Cannot read property 'findAll' of undefined


希望有解决过同样问题的大佬帮忙看下是哪里出了问题。


Change Log

2019-11-22 15:30
关于 import 使用出现 undefined 的问题已经解决。是我对 export & export default 用法不清所造成的。具体可以参考这篇文章的介绍,上面说的比较清楚。

阅读 3k
1 个回答

node 使用comment.js规范 const xx = require('') 这样引入文件

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题