![](/img/trans.png)
[英]The requested module './react.js' does not provide an export named 'default'
[英]The requested module './server/controller/controller.js' does not provide an export named 'default'
我目前是后端新手並在我的項目中使用ES6 modules
當我將控制器文件導入index.js
並啟動項目時,它說:-
語法錯誤:請求的模塊“./server/controller/controller.js”不提供名為“default”的導出
當我將其導入為:-
import {controller} from './server/controller/controller.js'
^^^^^^^^^^
Syntax Error: The requested module './server/controller/controller.js' does not provide an export named 'controller'
所以我在這里做錯了什么我還在我的包中提到了“類型”:“模塊”。 json文件
index.js 文件
import express from 'express'
import dotenv from 'dotenv'
import morgan from 'morgan'
import path from 'path';
import mongoose from "mongoose";
import {controller} from './server/controller/controller.js'
import route from './server/routes/route.js';
const __dirname = path.resolve();
const app = express();
//mongoDb
const connectDB = async () => {
try{
// mongodb connection string
const con = await mongoose.connect(process.env.MONGO, {
useNewUrlParser: true,
useUnifiedTopology: true,
})
console.log(`MongoDB connected `);
}catch(err){
console.log(err);
}
}
//mongodb finish
dotenv.config({path:'confige.env'})
const PORT = process.env.PORT || 5000
app.use(morgan('tiny'));
//database
connectDB()
//view engine
app.use(express.urlencoded({ extended : true}))
app.set("view engine", "ejs")
app.use('/css', express.static(path.resolve(__dirname, "assets/css")))
app.use('/js', express.static(path.resolve(__dirname, "assets/js")))
//routes
app.use('/',route)
// routes finish
//controller
app.post('/api/users',controller.create)
app.put('/api/users',controller.update)
app.delete('/api/users',controller.delete)
app.get('/api/users',controller.find)
app.listen(PORT, ()=> { console.log(`Server is running on http://localhost:${PORT}`)});
控制器.js文件
import Userdb from "../model/model.js";
exports.create = (req,res) =>{
}
exports.find = (req,res) =>{
}
exports.update = (req,res) =>{
}
exports.delete = (req,res) =>{
}
模型.js文件
import mongoose from "mongoose";
const scheme = new mongoose.Schema({
name:{
type:String,
required:true
},
email:{
type:String,
required:true,
unique:true
},
gendr:String,
status:String
})
const Userdb = mongoose.model('userdb',scheme)
export default Userdb
我是否需要用 Userdb 替換 controller.js 中的導出,因為我使用的是 ES6 模塊? 如果是這樣,那么 controller.js 文件的代碼是什么
提前致謝 :)
ES6 中有兩種類型的導出:名稱導出(一個或多個)和默認導出(每個模塊一個)。
當您從模塊中導出不止一件東西時,命名導出很有用,在您的情況下,我認為您使用它。
在您的 server.js 文件中,您在導入中使用了析構,但是,您不是以其中包含controller
鍵的對象形式導出。
在你的 controller.js 中:
import Userdb from "../model/model.js";
const create = (req,res) =>{
}
const find = (req,res) =>{
}
const update = (req,res) =>{
}
const _delete = (req,res) =>{ }
export {create, find, update, _delete}
在你的 index.js 中:
import { create, find, update, _delete } from 'controller.js';
我建議你檢查這個鏈接,ES6 中的導入和導出是如何工作的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.