Javascript 应用程序集(';端口';,端口)';TypeError:undefined不是函数';。初学者,需要想法吗
我是一个业余爱好者,正在学习使用node.js进行构建。我一直在按照教程创建我的第一个node.js应用程序。在我进入“npm开始”之前,它一直工作得很好。日志是:Javascript 应用程序集(';端口';,端口)';TypeError:undefined不是函数';。初学者,需要想法吗,javascript,node.js,npm,Javascript,Node.js,Npm,我是一个业余爱好者,正在学习使用node.js进行构建。我一直在按照教程创建我的第一个node.js应用程序。在我进入“npm开始”之前,它一直工作得很好。日志是: C:\node\nodeteest3\bin\www:16 TypeError: undefined is not a function at Object.<anonymous> M+<C;\node\nodetest3\bin\www:16:5 at Module_compile (module
C:\node\nodeteest3\bin\www:16
TypeError: undefined is not a function
at Object.<anonymous> M+<C;\node\nodetest3\bin\www:16:5
at Module_compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.module.runMain (module.js:501:10)
at startup(node.js:129:16)
at node.js:814:3
这就是错误指向的地方:
-------^错误指针指向“s”-关于集合非常清楚------------
您没有在
app.js
文件中声明任何名为set
的函数。
创建该函数并按如下方式导出:
exports.set = function(...) { ... };
var express = require('express'),
http = require('http');
var app = express();
http.createServer(app).listen(port);
如果此app
是expressapp
yo,请指定如下端口:
exports.set = function(...) { ... };
var express = require('express'),
http = require('http');
var app = express();
http.createServer(app).listen(port);
而不是
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
这是因为端口是http服务器的属性,而不是express应用程序的属性
你也可以使用
var express = require('express'),
app = express();
app.listen(port);
您没有导出
app.js
文件中的任何内容。在app.js
文件的末尾,包括以下行
module.exports = app;
看看你的问题是否消失了
还有一个补充:您有
var-app=express()在app.js底部的app.js
中编码>两次:
app.set('port', process.env.PORT || 26398); //<--- replace with your port number
// Server
var server = http.createServer(app);
server.listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
module.exports = app;
app.set('port',process.env.port | | 26398)// 在我的例子中,我只是在调用函数之前移动了normalizePort函数。这是在coffeescript中,但我已经在这里将其转换为javascript
normalizePort = function(val) {
var port;
var port;
port = parseInt(val, 10);
if (isNaN(port)) {
return val;
}
if (port >= 0) {
return port;
}
return false;
};
port = normalizePort(process.env.PORT || '4000');
只需在app.js文件中添加“module.exports=app;” 除了调用导出,请使用module.export结束脚本的结尾
exports=app代码>
module.exports=app
作为app
变量导入的文件./app
的内容是什么。使用module.exports
检查您是否在。/app
文件中正确导出express app。node似乎没有将app
变量视为express app的实例。@deepal这是我的app.js页面--------------------------------------------@deepal似乎正常工作!我已经在端口300连接了它,当我连接到该页面时,我得到一个未找到的404错误。这意味着我至少有联系,对吧?抱歉,在输入“意外”时按了enter键。抓到错误注释后,我会发布它。@fuelusumar so:var server=createServer(app)@我明白了!谢谢这几天我都快疯了!var server=createServer(app).port(port);您还可以使用app.listen(端口);总是这样:’)谢谢你在这方面的帮助。我知道我花了很长时间才回到工作岗位,但我现在正好有很多时间在IT工作上。所以这看起来会很完美。非常感谢,鲁伯特!
normalizePort = function(val) {
var port;
var port;
port = parseInt(val, 10);
if (isNaN(port)) {
return val;
}
if (port >= 0) {
return port;
}
return false;
};
port = normalizePort(process.env.PORT || '4000');