中找不到本地模块"/>
在 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:[email protected]/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 上的this 教程,并能够使用 Babel 正确设置 es6。然后,我在所有导入中添加了
.js
文件扩展名,它起作用了。
更多推荐
在 Node.js 中找不到本地模块
发布评论