Javascript 应用程序集(';端口';,端口)';TypeError:undefined不是函数';。初学者,需要想法吗

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

我是一个业余爱好者,正在学习使用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.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
是express
app
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.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');