我是 MERN 堆栈的新学习服务器端,我找不到这个问题的任何答案,有人可以帮助我解决这个错误吗?我已经尝试了所有可能的解决方案,但它仍然不起作用帮助!
node:internal/errors:491
ErrorCaptureStackTrace(err);
^
Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'C:\Users\charl\Desktop\movie-reviews\server.js' imported from C:\Users\charl\Desktop\movie-reviews\backend\index.js
at new NodeError (node:internal/errors:400:5)
at finalizeResolution (node:internal/modules/esm/resolve:326:11)
at moduleResolve (node:internal/modules/esm/resolve:945:10)
at defaultResolve (node:internal/modules/esm/resolve:1153:11)
at nextResolve (node:internal/modules/esm/loader:163:28)
at ESMLoader.resolve (node:internal/modules/esm/loader:842:30)
at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18)
at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:77:40)
at link (node:internal/modules/esm/module_job:76:36) {
code: 'ERR_MODULE_NOT_FOUND'
}
import app from '../server.js'
import mongodb from "mongodb"
import dotenv from "dotenv"
async function main(){
dotenv.config()
const client = new mongodb.MongoClient(process.env.MOVIEREVIEWS_DB_URI)
const port = process.env.PORT || 8000
try{
//connect to the mongodb cluster
await client.connect()
app.listen(port,()=>{
console.log("server is running on port: " + port);
})
} catch (e){
console.error(e);
process.exit(1)
}
}
main().catch(console.error);
import express from 'express'
import cors from 'cors'
import movies from './api/movies.rout.js'
const app = express()
app.use(cors())
app.use(express.json())
app.use("/api/v1/movies",movies)
app.use('*', (req,res)=>{
res.status(404).json({error:"not found"})
})
export default app
import express from 'express'
const router = express.Router() //get access to express router
router.route('/').get((req,res) => res.send('hello world'))
export default router
MOVIEREVIEWS_DB_URI=database
MOVIEREVIEWS=sample_mflix
PORT=500
我尝试将其添加到 package.json 中
“开始”:“nodemon --experimental-modules --es-module-specifier-resolution=node index.js”
index.js
import express from "express"
import dotenv from "dotenv"
import cors from "cors"
// use mongoose package instead of mongodb
import mongoose from "mongoose"
// routes
// should name files in camel case like movieRoutes.js and also use file extension .js
import movies from "./api/moviesRoutes.js"
// configurations
dotenv.config();
const app = express();
app.use(cors());
app.use(express.json());
// middleware for x-www-form-urlencoded
app.use(express.urlencoded({ extended: true}));
// use movie route
app.use("/api/v1/movies", movies);
// MongoDB Connection
const port = process.env.PORT || 8000
mongoose.set("strictQuery", true);
mongoose.connect(process.env.MOVIEREVIEWS_DB_URI).then(() => {
app.listen(port ,()=> console.log(`server is running on port: ${port}`));
}).
catch((err) => console.log(err));
电影Route.js
import express from "express"
const router = express.Router();
router.route("/").get((req, res) => {
res.send("Hello World");
});
export default router;
你不需要同时使用index.js和server.js文件,你可以使用index.js 用于基本配置。希望这段代码对您有帮助。
“可能存在错误,实验中可能会出现与项目中的“server.js”归档文件不同的名称。您可能会遇到类似的问题,但控制方式与归档文件的名称不同。
因此,请注意以下事项:
import authController from "../controllers/authController.js";
查看存档结果名称'authController.js.js'。
对档案名称和错误导入规则进行修订。 Espero que esto te ayude a solucionar tu Problema!”