找不到模块 '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
,并且效果很好。这似乎是命名冲突。
我在我的 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
,并且效果很好。这似乎是命名冲突。