账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    使用koa搭建API服务的问题(nodemon/sequelize)
    92
    0

    项目环境

    • 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 用法不清所造成的。具体可以参考这篇文章的介绍,上面说的比较清楚。

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 樱空之雪 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部