[英]Can't import module in node/express js
將文件導入我的節點 js 服務器文件時出現錯誤。 我通常以這種方式執行此操作,並且所有路徑都是正確的,因此我不確定錯誤是什么。
import express from 'express'
import mongoose from 'mongoose'
import data from '../data.js'
import Page from "../models/pageModel.js";
const app = express()
mongoose.connect(process.env.MONGODB_URL || 'mongodb://localhost/note-guard', {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
});
app.get('/', (req, res) => {
res.send('Server is ready');
});
app.use('/api/pages/:id', async (req, res) => {
const createdPages = await Page.insertMany(data.pages);
console.log(createdPages);
res.send("test");
})
const port = process.env.PORT || 5002;
app.listen(port, () => {
console.log(`Serve at http://localhost:${port}`);
});
這是我得到的錯誤:
internal/process/esm_loader.js:74
internalBinding('errors').triggerUncaughtException(
^
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/Users/charlielamb/Desktop/learnCode/note-guard/data.js' imported from /Users/charlielamb/Desktop/learnCode/note-guard/backend/server.js
at finalizeResolution (internal/modules/esm/resolve.js:265:11)
at moduleResolve (internal/modules/esm/resolve.js:699:10)
at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:810:11)
at Loader.resolve (internal/modules/esm/loader.js:88:40)
at Loader.getModuleJob (internal/modules/esm/loader.js:241:28)
at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:56:40)
at link (internal/modules/esm/module_job.js:55:36) {
code: 'ERR_MODULE_NOT_FOUND'
}
有什么幫助嗎?
為了能夠在 nodejs 中使用import
表達式,您應該在 package.json 文件中添加以下行: "type": "module"
。 它在"main": "index.js"
和之前: "scripts"
部分。 另一方面,您應該使用const express = require('express')
類型的表達式
此外,您應該為 package.json 擁有正確的項目結構,以便能夠將所有文件識別為“模塊”
right:
root - client
- package.json for client
- server
- package.json for server
wrong:
root - client
- package.json
- server
- package.json
為了幫助你,我制作了一個關於這個https://youtu.be/NAq3P_QCcOg的視頻
server.js
、 data.js
和models
在同一路徑中。 修復導入路徑:
import express from 'express'
import mongoose from 'mongoose'
import data from './data.js'
import Page from "./models/pageModel.js";
const app = express()
mongoose.connect(process.env.MONGODB_URL || 'mongodb://localhost/note-guard', {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
});
app.get('/', (req, res) => {
res.send('Server is ready');
});
app.use('/api/pages/:id', async (req, res) => {
const createdPages = await Page.insertMany(data.pages);
console.log(createdPages);
res.send("test");
})
const port = process.env.PORT || 5002;
app.listen(port, () => {
console.log(`Serve at http://localhost:${port}`);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.