语句"/>
成为错误:无法在模块外使用导入语句
我想用 MERN 堆栈创建应用程序,我要让用户使用 jwt 进行身份验证。 我创建了 userRouter.js 文件:
import express from 'express';
import User from '../models/userModel.js';
import { generateToken } from '../utils';
import expressAsyncHandler from 'express-async-handler'
const userRouter = express.Router();
userRouter.post('/register',expressAsyncHandler(async (req, res)=>{
const user = await User.findOne({email: req.body.email});
if(user){
if(bcryptpareSync(req.body.password, user.password)){
res.send({
_id: user._id,
name: user.name,
email:user.email,
token: generateToken(user)
});
return;
}
}
res.status(401).send({message: 'Invalid email or password'})
})
);
export default userRouter;
在 server.js 中,我添加了这个:
const express = require('express');
const port = process.env.PORT || 5000 ;
const dbConnection = require('./db');
const userRouter = require('./routes/usersRoute');
const app = express();
app.use(express.json());
app.use('/api/cars/', require('./routes/carsRoute'));
app.use('/api/users',userRouter) //this
app.use((err,req,res,next)=>{
res.status(500).send({message:err.message});
});
app.get('/',(req,res)=>res.send('Hello World!'))
app.listen(port, ()=> console.log(`Node.js server started in port ${port}`))
但是在 Node 的控制台中,写:
C:\Users\201217040\Documents\CarRentalApp\routes\usersRoute.js:1
import express from 'express';
^^^^^^
SyntaxError: Cannot use import statement outside a module
at ObjectpileFunction (node:vm:355:18)
at wrapSafe (node:internal/modules/cjs/loader:1022:15)
at Module._compile (node:internal/modules/cjs/loader:1056:27)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1121:10)
at Module.load (node:internal/modules/cjs/loader:972:32)
at Function.Module._load (node:internal/modules/cjs/loader:813:14)
at Module.require (node:internal/modules/cjs/loader:996:19)
at require (node:internal/modules/cjs/helpers:92:18)
at Object.<anonymous> (C:\Users\201217040\Documents\CarRentalApp\server.js:4:21)
at Module._compile (node:internal/modules/cjs/loader:1092:14)
[nodemon] app crashed - waiting for file changes before starting...
我该如何解决这个问题? 是关于在项目中使用 import 和 require 吗?
回答如下:你需要做的是将所有
import
语句更改为require
语句。您不能在节点应用程序中混合使用这两者,您必须同时使用其中一个或另一个。或者,您可以将所有 require
语句更改为 import
语句。只要您始终如一,两者都会起作用。
在所有导入语句都转换为 require 语句后,这是我从你的仓库中分叉出来的 repo 的链接:https://github/rsg71/carRentalApp
更多推荐
成为错误:无法在模块外使用导入语句
发布评论