找不到模块 'server',已将快递添加到 Ember-Cli 应用

Unable to find module 'server', added express to Ember-Cli app

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

我的过程:

npm install express --save

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

的文件

昨天我运行良好,我已经通过 ember s 安装了我的 ember 应用程序 运行,并使用 nodemon server/server.js 测试了 express 应用程序并检查端点我用 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);
}

还是没用。

文件夹结构:

有什么想法吗?我假设这是我错过的简单事情。但我很难过。

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