Node.js 服务器部分工作
Node.js server works partly
在 api 文件夹中我有 3 个 js 文件(calls.js、meetings.js、statistics.js)。所有文件看起来都一样:
const express = require('express')
const router = express.Router()
var knex = require('knex')({
client: 'mysql',
connection: {
host : 'host',
user : 'user',
password : 'password',
database : 'database'
}
});
***knex functions***
module.exports = router
所有这些都以相同的方式添加到 index.js 文件中:
app.use('/api/calls', require('./routes/api/calls'))
app.use('/api/statistics', require('./routes/api/statistics'))
app.use('/api/meetings', require('./routes/api/meetings'))
出于某种原因meetings.js 捣乱:
1. 如果从 meetings.js 中删除所有 knex 函数 - 一切正常;
2. 如果从 index.js 中删除行 app.use('/api/meetings', require('./routes/api/meetings'))
- 一切正常;
否则浏览器会说:"This site can’t be reached... ERR_CONNECTION_TIMED_OUT"
meetings.js的完整代码:
const express = require('express')
const router = express.Router()
var knex = require('knex')({
client: 'mysql',
connection: {
host : 'host',
user : 'user',
password : 'password',
database : 'database'
}
});
app.post('/newMeetingDay', (req, res) => {
const city = req.body.city
const date = req.body.date
const scheduled = req.body.scheduled
const happened = req.body.happened
const adults = req.body.adults
const children = req.body.children
if (!city || !date || !scheduled || !happened || !adults || !children){
return res.json({Error: 'details are missing'})
}
knex('MeetingDays').insert({City: city, Date: date, Scheduled: scheduled, Happened: happened,
Adults: adults, Children: children}).then(data => {
return res.json({Done: 'new meeting day saved'})
}).catch(err => {
return res.json({Error: err})
})
})
module.exports = router
有人知道什么是问题吗?
发现问题:在meetings.js
中函数应该是router.post
而不是app.post
在 api 文件夹中我有 3 个 js 文件(calls.js、meetings.js、statistics.js)。所有文件看起来都一样:
const express = require('express')
const router = express.Router()
var knex = require('knex')({
client: 'mysql',
connection: {
host : 'host',
user : 'user',
password : 'password',
database : 'database'
}
});
***knex functions***
module.exports = router
所有这些都以相同的方式添加到 index.js 文件中:
app.use('/api/calls', require('./routes/api/calls'))
app.use('/api/statistics', require('./routes/api/statistics'))
app.use('/api/meetings', require('./routes/api/meetings'))
出于某种原因meetings.js 捣乱:
1. 如果从 meetings.js 中删除所有 knex 函数 - 一切正常;
2. 如果从 index.js 中删除行 app.use('/api/meetings', require('./routes/api/meetings'))
- 一切正常;
否则浏览器会说:"This site can’t be reached... ERR_CONNECTION_TIMED_OUT"
meetings.js的完整代码:
const express = require('express')
const router = express.Router()
var knex = require('knex')({
client: 'mysql',
connection: {
host : 'host',
user : 'user',
password : 'password',
database : 'database'
}
});
app.post('/newMeetingDay', (req, res) => {
const city = req.body.city
const date = req.body.date
const scheduled = req.body.scheduled
const happened = req.body.happened
const adults = req.body.adults
const children = req.body.children
if (!city || !date || !scheduled || !happened || !adults || !children){
return res.json({Error: 'details are missing'})
}
knex('MeetingDays').insert({City: city, Date: date, Scheduled: scheduled, Happened: happened,
Adults: adults, Children: children}).then(data => {
return res.json({Done: 'new meeting day saved'})
}).catch(err => {
return res.json({Error: err})
})
})
module.exports = router
有人知道什么是问题吗?
发现问题:在meetings.js
中函数应该是router.post
而不是app.post