gpt4 book ai didi

javascript - 语法错误 : Unexpected token * after importing sequelize model db object

转载 作者:行者123 更新时间:2023-12-03 22:30:00 25 4
gpt4 key购买 nike

我正在开发一个应用程序,我必须使用 Sequelize 在 SQL 服务器上连接和执行查询。我已经使用 sequelize init 创建了迁移、播种和模型,但是现在当我尝试使用 const db = require("./models") 创建模型对象时,它抛出了类似的错误

D:\Code Practice\express-sequelize-demo\node_modules\tedious\lib\token\stream-parser.js:85
static async *parseTokens(iterable, debug, options, colMetadata = []){
SyntaxError: Unexpected token *
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:616:28)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (D:\Code Practice\express-sequelize-demo\node_modules\tedious\lib\token\token-stream-parser.js:10:44)
我创建的文件
  • package.json
  • {
    "name": "express-sequelize-demo",
    "version": "1.0.0",
    "description": "",
    "main": "app.js",
    "scripts": {
    "start": "nodemon app.js"
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "dependencies": {
    "express": "^4.17.1",
    "mssql": "^7.1.0",
    "sequelize": "^6.6.2",
    "tedious": "^11.0.9"
    },
    "devDependencies": {
    "nodemon": "^2.0.7"
    }
    }
  • app.js
  • const express = require("express");
    const app = express();
    const PORT = 8088;

    // throwing error here after importing
    const db = require("./models");

    app.get("/users", (req, res) => {
    res.send({
    status: 1,
    message: "Hello from User",
    });
    });

    app.get("/", (req, res) => {
    res.send({
    status: 1,
    message: "Welcome to Home Page",
    });
    });

    app.listen(PORT, () => {
    console.log(`App is running on ${PORT}`);
    });
  • 模型/index.js
  • "use strict";

    const fs = require("fs");
    const path = require("path");
    const Sequelize = require("sequelize");
    const basename = path.basename(__filename);
    const env = process.env.NODE_ENV || "development";
    const config = require(__dirname + "/../config/config.json")[env];
    const db = {};

    let sequelize;
    if (config.use_env_variable) {
    sequelize = new Sequelize(process.env[config.use_env_variable], config);
    } else {
    sequelize = new Sequelize(
    config.database,
    config.username,
    config.password,
    config
    );
    console.log(sequelize);
    }

    fs.readdirSync(__dirname)
    .filter((file) => {
    return (
    file.indexOf(".") !== 0 && file !== basename && file.slice(-3) === ".js"
    );
    })
    .forEach((file) => {
    const model = require(path.join(__dirname, file))(
    sequelize,
    Sequelize.DataTypes
    );
    db[model.name] = model;
    });

    Object.keys(db).forEach((modelName) => {
    if (db[modelName].associate) {
    db[modelName].associate(db);
    }
    });

    db.sequelize = sequelize;
    db.Sequelize = Sequelize;

    module.exports = db;
  • 模型/user.js
  • 'use strict';
    const {
    Model
    } = require('sequelize');
    module.exports = (sequelize, DataTypes) => {
    class User extends Model {
    static associate(models) {
    // define association here
    }
    };
    User.init({
    first_name: DataTypes.STRING,
    last_name: DataTypes.STRING,
    bio: DataTypes.TEXT
    }, {
    sequelize,
    modelName: 'User',
    });
    return User;
    };
    5)配置文件
    {
    "development": {
    "username": "SA",
    "password": "Password123",
    "database": "database_development",
    "host": "localhost",
    "dialect": "mssql"
    },
    "test": {
    "username": "root",
    "password": "Password123",
    "database": "database_test",
    "host": "127.0.0.1",
    "dialect": "mssql"
    },
    "production": {
    "username": "root",
    "password": "Password123",
    "database": "database_production",
    "host": "127.0.0.1",
    "dialect": "mssql"
    }
    }

    最佳答案

    我已经通过更新 Node 版本解决了这个问题。
    这里的问题是当我尝试使用创建 Sequelize 实例时

    const sequelize = new Sequelize(DB connection params); //pass the actual db config
    它抛出了那个错误。
    SyntaxError: Unexpected token *
    但是经过一番研究,我将我的 Node 版本从 8.11.4 更新到 14.17.0,并且成功了。现在没有任何错误,我可以运行我的应用程序并且它按预期工作。

    关于javascript - 语法错误 : Unexpected token * after importing sequelize model db object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67869555/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com