[英]Local Module Not Found in Node.js
在 Node.js 中,我创建了自己的自定义模块,名为apiEndpoints.js
。 但是,当我尝试访问它时,我收到 Node.js 的找不到模块错误。 下面是我的Server.js
代码:
import express from "express";
import mongoose from "mongoose";
import Cors from "cors";
import apiEndpoints from "./routes/apiEndpoints";
// Initialization
const app = express();
const port = process.env.port || 80;
const connection_url =
"mongodb+srv://admin:EUl8KIA9dLv7qXKa@cluster0.mblf7.mongodb.net/appDB?retryWrites=true&w=majority";
// Middleware
app.use(express.json());
app.use(Cors());
// DB Config
mongoose.connect(connection_url);
// API Endpoints
app.use(apiEndpoints);
app.listen(port, () => {
console.log(`Listening on localhost: ${port}`);
});
下面是我的apiEndpoints.js
代码:
import express from "express";
import Users from "../models/users";
const router = express.Router();
router.get("/users", (req, res) => {
Users.find((err, data) => {
if (err) {
res.status(500).send(err);
} else {
res.status(200).send(data);
}
});
});
router.get("/user/:username", (req, res) => {
const username = req.params.username;
Users.findOne({ username: username }, (err, data) => {
if (err) {
res.status(500).send(err);
} else {
res.status(200).send(data);
}
});
});
router.post("/user/create", (req, res) => {
const user = req.body;
Users.create(user, (err, data) => {
if (err) {
res.status(500).send(err);
} else {
res.status(201).send(data);
}
});
});
router.put("/user/:username", (req, res) => {
const username = req.params.username;
const updatedData = req.body;
Users.findOneAndUpdate(
{ username: username },
updatedData,
{ new: true },
(err, data) => {
if (err) {
res.status(500).send(err);
} else {
res.status(200).send(data);
}
}
);
});
router.delete("/user/delete/:username", (req, res) => {
const username = req.params.username;
Users.findOneAndDelete({ username: username }, (err, data) => {
if (err) {
res.status(500).send(err);
} else {
res.status(200).send(data);
}
});
});
export default router;
此外,下面是我的package.json
文件:
{
"name": "api",
"version": "1.0.0",
"description": "",
"main": "server.js",
"type": "module",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"cors": "^2.8.5",
"express": "^4.17.1",
"mongoose": "^6.0.4"
}
}
所以我的问题是为什么当Server.js
尝试访问apiEndpoints.js
时它会说“未找到模块”?
好的,经过几个小时的努力,我能够解决我的问题。 所以我的问题是我没有为 Node.js 正确设置 es6。 因此,我按照 Medium 上的教程进行了操作,并且能够使用 Babel 正确设置 es6。 然后,我在所有导入中添加了.js
文件扩展名,并且它可以工作。
您需要将文件扩展名添加到所有导入和导出语句,然后它可以在没有 Babel 的情况下工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.