无法找到模块'服务器',将快递添加到Ember-Cli应用程序

时间:2016-02-19 07:39:15

标签: express ember.js ember-cli

我在我的ember应用程序中添加了一个expressJS应用程序,因此我可以为我的ember应用程序提供后端API。

我的流程:

npm install express --save

我创建了一个名为" server"的文件夹。在我的ember应用程序的路径中,在一个名为" server.js"的文件里面。

昨天我工作正常,我已经通过ember s运行了我的余烬应用,并使用nodemon server/server.js测试了快速应用,并检查了我使用Postman创建的端点。

但是今天早上,当我尝试运行ember s时,我发现了以下错误:

C:\Sandbox\tsodash>ember s
version: 2.3.0-beta.2
Cannot find module 'C:\Sandbox\tsodash\server'
Error: Cannot find module 'C:\Sandbox\tsodash\server'
    at Function.Module._resolveFilename (module.js:339:15)
    at Function.Module._load (module.js:290:25)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)
    at Project.require (C:\Sandbox\tsodash\node_modules\ember-cli\lib\models\project.js:281:12)
    at Class.module.exports.Task.extend.processAppMiddlewares (C:\Sandbox\tsodash\node_modules\ember-cli\lib\tasks\server\express-server.js:115:33)
    at Class.<anonymous> (C:\Sandbox\tsodash\node_modules\ember-cli\lib\tasks\server\express-server.js:220:21)
    at lib$rsvp$$internal$$tryCatch (C:\Sandbox\tsodash\node_modules\ember-cli\node_modules\rsvp\dist\rsvp.js:1036:16)
    at lib$rsvp$$internal$$invokeCallback (C:\Sandbox\tsodash\node_modules\ember-cli\node_modules\rsvp\dist\rsvp.js:1048:17)
    at C:\Sandbox\tsodash\node_modules\ember-cli\node_modules\rsvp\dist\rsvp.js:331:11

当然我假设我只需要使用modules.exports = function(){ //..expressjs code}

完整代码

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var request = require('request');
var btoa = require('btoa');
var config = require('./config');
var _ = require('lodash');


module.exports = function(){

  var endPoints = config.endPoints;
  app.use(bodyParser.urlencoded({
    extended: true
  }));
  app.use(bodyParser.json());

  var port = process.env.PORT || 4200;

  var router = express.Router();

  // middleware to use for all requests
  router.use(function (req, res, next) {
    // do logging
    console.log('Something is happening.');
    next(); // make sure we go to the next routes and don't stop here
  });


  router.get('/', function (req, res) {
    res.json({
      message: 'TSO Git Dash'
    });
  });

  //  ..      
  app.use('/api', router);

  app.listen(port);
  console.log('Magic happens on port: ' + port);
}

仍无济于事。

文件夹结构:

Folder structure

有什么想法吗?我认为这是一件我错过的简单事情。但是我很难过。

1 个答案:

答案 0 :(得分:0)

正如@locks在评论中所建议的那样,mocks and fixtures中使用了一个快速服务器。修复很简单,我将文件夹和JS文件重命名为“api”并运行ember s,它运行良好。这似乎是一个命名冲突。