Unexpected token import

发布于 2022-09-11 15:07:11 字数 1750 浏览 13 评论 0

koa连接mongodb数据库时报错Unexpected token import,已引入babel

server.js

const db = require('./mongodb/db');

const Koa = require('koa');
const webpack = require('webpack');
const merge = require('webpack-merge');

const KoaRouter = require('koa-router')();

const Monk = require('monk');
const schema = require('./mongodb/schema');

const opn = require('opn');
const config = merge(require('../config/webpack.config.dev'));
const appConfig = require('../app.config');
const currentIP = require('ip').address();
const uri = `http://${currentIP}:${appConfig.appPort}`;
const clientCompiler = webpack(config);
const devMiddleware = webpackDevMiddleware(clientCompiler, {
    publicPath: config.output.publicPath,
    headers: {'Access-Control-Allow-Origin': '*'},
    stats: {
        colors: true,
        modules: false,
    },
    noInfo: false,
});
// koa server
const app = new Koa();
// dateBase.connect();
db.connect((err) => {
    if (err) throw err;

    console.log('success');
});

devMiddleware.waitUntilValid(() => {
    // console.log('> Listening at ' + uri + '\n');
    // opn(uri)
});

// 错误处理
app.on('error', (err) => {
    console.error('Server error: \n%s\n%s ', err.stack || '');
});

app.listen(appConfig.appPort);

schema.js

import mongoose from 'mongoose';
const Schema = mongoose.Schema;

const UserModel = new Schema({
    name: String,
});

const User = mongoose.model('user', UserModel);

module.exports = {
    User
};

.babelrc

{
  "presets": [
    "@babel/preset-env",
    "@babel/preset-react"
  ],
  "plugins": [
    "react-hot-loader/babel"
  ]
}

前端页面是可以用import引入的,server端的代码不可以
由于学习不深入,所以不知道问题出在哪里,请各位大神指教

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

相对绾红妆 2022-09-18 15:07:11

node是不支持import语法,你可以换成require的方式引入模块;

const mongoose = require('mongoose');

如果使用babel的 ,入口文件也同样是不能使用import的,具体的配置方法可以自行百度。你的babel应该是配置不对,所以报错了。

热情消退 2022-09-18 15:07:11

NodeJS对ES6的支持尚处于试验阶段,默认不打开,所以import语法也不支持。如何打开请参考文档:https://nodejs.org/api/esm.ht...
如果不使用ES Module使用Babel也是可行的,配置环节比较长,不知道你参考的哪篇文章,可以看看这里:https://medium.com/@JedaiSabo...
我觉得你可能是在执行的时候没有用babel-node:

./node_modules/.bin/babel-node schema.js
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文