HTTP请求使服务器挂起

时间:2014-12-06 10:17:59

标签: node.js express

我正在尝试在expressJS中构建一个rest API,但到目前为止,我在生成json响应方面遇到了很多麻烦。如果我将一条新记录发送到我的一个端点,它会被插入到数据库中,但服务器只是挂起并且没有响应。同样,如果我向我的某个资源发出get请求,则没有任何反应,服务器会再次挂起。

路由文件:

'use strict'

Calendar = require './models/calendar'

module.exports = (app, express) ->
  router   = express.Router()

  # Log HTTP requests to console
  router.use (req, res, next) ->
    console.log req.method, req.url
    next()

  # Calendar routes
  router.get '/calendars', (req, res) ->
    Calendar.find (err, calendars) ->
      if err then res.send(err)
      res.json(calendars)

  router.post '/calendars', (req, res) ->
    calendar = new Calendar
    calendar.name = req.body.name

    calendar.save (err, calendar) ->
      if err then next(err)
      res.json(200,   calendar)


  # Namespace API 
  app.use('/api', router)

服务器文件:

'use strict';

express = require 'express'
path    = require 'path'
fs      = require 'fs'

# Set default node environment to development
process.env.NODE_ENV = process.env.NODE_ENV || 'development';

config = require './server/config/config'
app = express()
require('./server/config/express') app
require('./server/routes') app, express

# Start server
app.listen config.port, config.ip, ->
  console.log 'Express server listening on %s:%d, in %s mode', config.ip, config.port, app.get 'env'

# Expose app
exports = module.exports = app;

配置文件:

path         = require 'path'
express      = require 'express'
favicon      = require 'static-favicon'
cookieParser = require 'cookie-parser'
errorHandler = require 'errorhandler'
session      = require 'express-session'
config       = require './config'
mongoStore   = require('connect-mongo') session
bodyParser   = require 'body-parser'


module.exports = (app) ->
  env = app.get 'env'
  if env is 'development'
    app
    .use require('connect-livereload')()
    .use errorHandler()

    #disables caching of scripts in development module
    #TODO: only for certain paths?
    .use (req, res, next) ->
      res.header 'Cache-Control', 'no-cache, no-store, must-revalidate'
      res.header 'Pragma', 'no-cache'
      res.header 'Expires', 0
      next()

  sessionStore = new mongoStore
    url: config.mongo.uri
    collection: 'sessions'

  app
  .use express.static path.join config.root, '.tmp'
  .use express.static path.join config.root, 'client'
  .use bodyParser.json()
  .use bodyParser.urlencoded(extended: true) 
  .set 'views', "#{config.root}/client"
  .set 'view engine', 'jade'
  .use cookieParser()
  .use session
    secret: 'my-little-secret'
    store: sessionStore

0 个答案:

没有答案