ReferenceError: Cannot access module before initialization
ReferenceError: Cannot access module before initialization
我已经创建了我的模型'order'
我尝试向 mongodb 添加新订单,但一直显示此错误,请帮助我!谢谢
我依靠 add_order.ejs 来提交表单。
“ReferenceError:初始化前无法访问 'order'”
我有另外两个模型 'recipe' 和 'customer',但它们有效!我不明白为什么只有
订单有误?
order.js
const userSchema = new mongoose.Schema({
order_id :{
type: String,required : true
},
sum :{
type:Number,
required : true,
},
account :{
type :String,
required : true,
}
});
module.exports = mongoose.model('order',userSchema);
routes.js
const express = require('express');
const mongoose = require('mongoose');
const router = express.Router();
const customer = require('../models/customer');
const recipe = require('../models/recipe');
const multer = require('multer');
const { GridFSBucketReadStream } = require('mongodb');
const fs = require('fs');
const order = require('../models/order');
//insert an order into database route
router.post('/add_order', upload, (req,res) => {
const order = new order({
order_id : req.body.order_id,
sum : req.body.sum,
account : req.body.account,
});
order.save((err) => {
if(err){
res.json({message : err.message, type :'danger'});
}
else{
req.session.message={
type:'success',
message :'Customer added successfully!'
};
res.redirect("/");
}
})
})
add_order.ejs
<form action="/add_order" method="POST" id="add-form" enctype="multipart/form-data">
<div class="one_third first">
<label for="name">order_id <span>*</span></label>
<input type="text" name="order_id" placeholder="Enter order_id" size="22" required /></td>
</div>
<div class="one_third">
<label for="email">sum <span>*</span></label>
<input type="number" name="sum" placeholder="Enter sum" size="22" required>
</div>
<div class="one_third">
<label for="url">account <span>*</span></label>
<input type="text" name="account" placeholder="Enter account" size="22" required />
</div>
<input type="submit" name="submit" value="Add order" />
<input type="reset" name="reset" value="Reset Form">
</form>
你对此有疑问:
const order = require('../models/order');
//insert an order into database route
router.post('/add_order', upload, (req,res) => {
c**onst order = new order**({ // <- you trying to change an immutable class definition
Class变量和实例变量需要有不同的名称。
建议您将 class 名称更改为 Order(大写 O):
const Order = require('../models/order');
然后像这样调用您的实例:
const order = new Order({ ... });
我已经创建了我的模型'order' 我尝试向 mongodb 添加新订单,但一直显示此错误,请帮助我!谢谢 我依靠 add_order.ejs 来提交表单。 “ReferenceError:初始化前无法访问 'order'” 我有另外两个模型 'recipe' 和 'customer',但它们有效!我不明白为什么只有 订单有误? order.js
const userSchema = new mongoose.Schema({
order_id :{
type: String,required : true
},
sum :{
type:Number,
required : true,
},
account :{
type :String,
required : true,
}
});
module.exports = mongoose.model('order',userSchema);
routes.js
const express = require('express');
const mongoose = require('mongoose');
const router = express.Router();
const customer = require('../models/customer');
const recipe = require('../models/recipe');
const multer = require('multer');
const { GridFSBucketReadStream } = require('mongodb');
const fs = require('fs');
const order = require('../models/order');
//insert an order into database route
router.post('/add_order', upload, (req,res) => {
const order = new order({
order_id : req.body.order_id,
sum : req.body.sum,
account : req.body.account,
});
order.save((err) => {
if(err){
res.json({message : err.message, type :'danger'});
}
else{
req.session.message={
type:'success',
message :'Customer added successfully!'
};
res.redirect("/");
}
})
})
add_order.ejs
<form action="/add_order" method="POST" id="add-form" enctype="multipart/form-data">
<div class="one_third first">
<label for="name">order_id <span>*</span></label>
<input type="text" name="order_id" placeholder="Enter order_id" size="22" required /></td>
</div>
<div class="one_third">
<label for="email">sum <span>*</span></label>
<input type="number" name="sum" placeholder="Enter sum" size="22" required>
</div>
<div class="one_third">
<label for="url">account <span>*</span></label>
<input type="text" name="account" placeholder="Enter account" size="22" required />
</div>
<input type="submit" name="submit" value="Add order" />
<input type="reset" name="reset" value="Reset Form">
</form>
你对此有疑问:
const order = require('../models/order');
//insert an order into database route
router.post('/add_order', upload, (req,res) => {
c**onst order = new order**({ // <- you trying to change an immutable class definition
Class变量和实例变量需要有不同的名称。
建议您将 class 名称更改为 Order(大写 O):
const Order = require('../models/order');
然后像这样调用您的实例:
const order = new Order({ ... });