【发布时间】:2023-01-13 21:17:42
【问题描述】:
使用应该实现的 Node(Express) + MongoDB(mongoose) 创建一组 API 以下功能。
- 使用jwt的认证模块
- 使用服务工作者通过数据库中的 api 上传并保存联系人(csv 文件)。
联系人示例格式: 姓名、电话、电子邮件、linkedin 个人资料网址
我已经尝试过了,但我在建立连接时遇到错误,在 app.js 文件中出错。 **错误:app.set('视图引擎','ejs') ^
ReferenceError:应用未定义**
var express = require('express')
var multer = require('multer')
var mongoose = require('mongoose')
var path = require('path')
var bodyParser = require('body-parser')
var csv = require('csvtojson')
var contactSchema = require('./models/UserContactModel.js')
var storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, './public/uploads')
},
filename: (req, file, cb) => {
cb(null, file.originalname)
},
})
var uploads = multer({ storage: storage })
mongoose
.connect('mongodb://localhost:27017/demodb', { useNewUrlParser: true })
.then(() => console.log('Connected'))
.catch((err) => console.log(err))
app.set('view engine', 'ejs')
app.use(bodyParser.urlencoded({ extended: false }))
app.use(express.static(path.resolve(__dirname, 'public')))
app.get('/', (req, res) => {
contactSchema.find((err, data) => {
if (err) {
} else {
if (data != '') {
res.render('index', { data: data })
} else {
res.render('index', { data: '' })
}
}
})
})
var contactResponse
app.post('/', uploads.single('csvFile'), (req, res) => {
csv()
.fromFile(req.file.path)
.then((response) => {
for (var x = 0; x < response; x++) {
contactResponse = parseFloat(response[x].Name)
response[x].Name = contactResponse
contactResponse = parseFloat(response[x].Email)
response[x].Email = contactResponse
contactResponse = parseFloat(response[x].LinkedIn)
response[x].LinkedIn = contactResponse
contactResponse = parseFloat(response[x].Mobile)
response[x].Mobile = contactResponse
}
contactSchema.insertMany(response, (err, data) => {
if (err) {
console.log(err)
} else {
res.redirect('/')
}
})
})
})
var port = process.env.PORT || 3000
app.listen(port, () => console.log('App connected on: ' + port))
【问题讨论】:
-
您从未创建过已声明的
app。你缺少app = express()见expressjs.com/en/starter/hello-world.html -
询问“请帮助我”的问题往往是在寻找高度本地化的指导,或者在某些情况下,寻求持续或私人的帮助,这不适合我们的问答形式。它也相当模糊,最好用更具体的问题代替。请阅读Why is "Can someone help me?" not an actual question?。