首页 > 解决方案 > Node.js 服务器部分工作

问题描述

在 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. 如果从 meeting.js 中删除所有 knex 函数 - 一切正常;app.use('/api/meetings', require('./routes/api/meetings'))2. 如果从 index.js中删除该行- 一切正常;否则浏览器会说:“无法访问此站点... ERR_CONNECTION_TIMED_OUT”

meeting.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

有谁知道可能是什么问题?

标签: javascriptnode.jsknex.js

解决方案


发现一个问题:在meetings.js函数里应该是router.post和不是app.post


推荐阅读