我在我的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);
}
仍无济于事。
文件夹结构:
有什么想法吗?我认为这是一件我错过的简单事情。但是我很难过。
答案 0 :(得分:0)
正如@locks在评论中所建议的那样,mocks and fixtures中使用了一个快速服务器。修复很简单,我将文件夹和JS文件重命名为“api”并运行ember s
,它运行良好。这似乎是一个命名冲突。