javascript - SyntaxError:意外的令牌“导出”试图将用户故事合并到我的项目
问题描述
您好,我知道它应该是 module.exports 而不是 exports 但这甚至不起作用并让我出错:Route.get() 需要一个回调函数但得到一个 [object Undefined] 任何想法我应该怎么做对不起我我是初学者,我已经发布了我尝试添加的用户故事的 3 个 js 文件和 server.js 文件
第一个 .js 文件。
const scheduleData = require('../models/schedule.js');
exports.getschedule= async (req,res) => {
try {
const allschedule= await scheduleData.find();
res.status(200).json(allschedules); //Ok
} catch (error) {
res.status(404).json({message: error.message}) //Not Founnd
}
}
exports.createschedules= async (req,res) => {
const schedule= req.body;
const newschedule = new scheduleData(schedule);
try {
await newschedule.save();
res.status(201).json(newschedule); //Created
} catch (error) {
res.status(409).json({message: error.message}) //Conflict
}
}
exports.deleteschedule= async (req,res) => {
const id= req.params.id;
try {
await scheduleData.findByIdAndRemove(id).exec();
res.send('Successfully deleted!')
} catch (error) {
console.log(error);
}
}
第二个文件
const express = require ('express')
const { getschedule} = require ( '../../controllers/schedule.js')
const { createschedule} = require ( '../../controllers/schedule.js')
const { deleteschedule} = require ( '../../controllers/schedule.js')
const router = express.Router();
router.get('/', getschedule);
router.post('/', createschedule);
router.delete('/:id', deleteschedule);
//export default router;
module.exports = router;
第三场
const mongoose = require ('mongoose');
const scheduleSchema = mongoose.Schema({
Day: String,
FirstP: String,
SecondP: String,
ThirdP: String,
FourthP: String,
FifthP: String,
tutorial: {
type: String,
default: 'A'
},
});
//const schedule= mongoose.model('schedule', scheduleSchema);
//export default schedule;
module.exports = schedule=mongoose.model('schedule', scheduleSchema);
server.js 文件
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const path = require('path');
const auth = require('./routes/api/auth.routes.js');
const scheduleroutes = require ('./routes/api/schedule');
const courses = require('./routes/api/courses');
const app = express();
// Bodyparser Middleware
app.use(bodyParser.json());
// DB Config
const db = require('./config/keys').mongoURI;
// Connect to Mongo
mongoose
.connect(db, { useNewUrlParser: true }) // Adding new mongo url parser
.then(() => console.log('MongoDB Connected...'))
.catch(err => console.log(err));
mongoose.set('debug', true);
// Use Routes
app.use('/api/courses', courses);
app.use(express.json());
app.use('/api/auth', auth);
app.use('/api/schedule',scheduleroutes);
//app.use(cors({ origin: 'http://localhost:3000/', credentials: true }));
if (process.env.NODE_ENV === 'production') {
// Set static folder
app.use(express.static('client/build'));
app.get('*', (req, res) => {
res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'));
});
}
const port = process.env.PORT || 5000;
app.listen(port, () => console.log(`Server started on port ${port}`));
解决方案
似乎您正在将 require/exports (CommonJs) 与 import/export (ES6) 语法混合在一起。通常,NodeJs在解析模块时使用require/exports 。尝试使用一种一致的风格。你能改成这个,看看错误是否仍然存在:
第一个.js
const scheduleData = require('../models/schedule.js');
// Named exports
exports.getschedule = async (req,res) => {
try {
const allschedule= await scheduleData.find();
res.status(200).json(allschedules); //Ok
} catch (error) {
res.status(404).json({message: error.message}) //Not Founnd
}
}
exports.createschedules = async (req, res) => {
...
}
第二个.js
const {getSchedule} = require("./first.js");
const express = require("express");
const router = express.Router();
router.get("/", getSchedule);
module.exports = router;
第三个.js
const mongoose = require('mongoose');
const scheduleSchema = mongoose.Schema({
Day: String,
FirstP: String,
SecondP: String,
ThirdP: String,
FourthP: String,
FifthP: String,
tutorial: {
type: String,
default: 'A'
},
});
// Default export
module.exports = mongoose.model('schedule', scheduleSchema);
推荐阅读
- java - 在双向映射的情况下如何在spring-data-jpa中删除
- postgresql - PostgreSQL 在选择查询中转义 Microsoft 特殊字符
- css - 编译较少文件时无法识别的输入
- java - How to automate two JSON response comparison
- python - Python bs4:如果满足某个条件,如何使用不同的表达式列表重复“For”循环?
- javascript - 当我向其中发送另一个承诺时,promise.then() 不起作用
- python - 加速 BeautifulSoup 解析?
- node.js - 如何在 TypeScript 项目中配置 Knex.ts?
- sql-server - SQL Report Builder 3.0 - 无法预览报告
- r - 如何在箱线图 R 中显示单独的误差线?