app.set('port', port) '类型错误:未定义不是函数'。初学者,需要思路

2024-04-02

我是一名业余爱好者,正在学习使用 Node.js 进行构建。我一直在按照教程创建我的第一个 Node.js 应用程序。它工作得很好,直到我输入“npm start”。日志是:

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

然后它输出大约 20 行以“npm ERR!”+文件路径开头的内容,我认为没有必要,因为错误似乎在 bin 文件中。代码是

#!/usr/bin/env node
/**
* Module dependencies.
*/

var app = require('../app');
var debug = require('debug')('nodetest3:server');
var http = require('http');

/**
* Get port from environment and store in Express.
 */

var port = normalizePort(process.env.PORT || '3000');

这就是错误所指向的地方:

[app.set('port', port);]

--------^错误指针位于's'-关于集合如此清楚------------

app.set('port', port);
 /**
 * Create HTTP server.
 */

var server = http.createServer(app);

 /**
 * Listen on provided port, on all network interfaces.
 */

server.listen(port);
server.on('error', onError);
server.on('listening', onListening);

 /**
 * Normalize a port into a number, string, or false.
 */

function normalizePort(val) {
    var port = parseInt(val, 10);

  if (isNaN(port)) {
    // named pipe
    return val;
  }

  if (port >= 0) {
    // port number
    return port;
   }

   return false;
}

/**
* Event listener for HTTP server "error" event.
*/

function onError(error) {
  if (error.syscall !== 'listen') {
    throw error;
  }

  var bind = typeof port === 'string'
    ? 'Pipe ' + port
    : 'Port ' + port;

  // handle specific listen errors with friendly messages
  switch (error.code) {
    case 'EACCES':
      console.error(bind + ' requires elevated privileges');
      process.exit(1);
      break;
    case 'EADDRINUSE':
      console.error(bind + ' is already in use');
      process.exit(1);
      break;
    default:
      throw error;
  }
}

/**
 * Event listener for HTTP server "listening" event.
 */

function onListening() {
  var addr = server.address();
  var bind = typeof addr === 'string'
    ? 'pipe ' + addr
    : 'port ' + addr.port;
  debug('Listening on ' + bind);
}

Like I said in the beginning, I'm a complete beginner with command-line/github, but I'm already in love with it. I try to practice it every night after I finish my homework, and am getting really frustrated about getting stuck because I haven't been able to move forward for four days now. Also, I'm running this on node.js and the OS is Windows 8. Anything helps!  Let me know if you want me to post any of the other code; I omitted so as to not add more than necessary.

 "../app (app.js file) JUST ADDED"***************************
../app file:
    [ App.js   ]
 var express = require('express');
 var path = require('path');
 var favicon = require('serve-favicon');
 var logger = require('morgan');
 var cookieParser = require('cookie-parser');
 var bodyParser = require('body-parser'); 

var routes = require('./routes/index');
var users = require('./routes/users');
var app = express();

///  catch 404 and forwarding to error handler
app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
});
var app = express();
// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
        app.use(function(err, req, res, next) {
        res.status(err.status || 500);
        res.render('error', {
            message: err.message,
            error: err
        });
    });
}


var app = express();


// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

// uncomment after placing your favicon in /public
//app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(logger('dev'));
app.use(bodyParser.json({estended: true}));
app.use(bodyParser.urlencoded({extended: true}));
app.use(cookieParser({extended:true}));
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);
app.use('/users', users);





//  production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
        message: err.message,
        error: {}
    });
});

您没有导出任何内容app.js文件。在......的最后app.js文件,包括以下行。

module.exports = app;

看看您的问题是否消失。

还有一个补充:你有var app = express();两次在你的app.js.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

app.set('port', port) '类型错误:未定义不是函数'。初学者,需要思路 的相关文章

随机推荐

  • Reduce 函数不处理空列表

    我之前创建了一个递归函数来查找列表的乘积 现在我创建了相同的函数 但使用reduce功能和lamdba 当我运行这段代码时 我得到了正确的答案 items 1 2 3 4 10 print reduce lambda x y x y ite
  • PyQt5 dbus:强制信号参数的类型签名为字符串数组

    我正在编写一个 MPRIS 播放器 它通过以下方式与客户进行通信 dbus 当我的播放状态发生变化时 我需要发出一个信号 然而 信号需要的格式为 sa sv as 我的代码正在生成 sa sv av 这是重要的部分 self signal
  • 我如何实现苹果推送通知? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我是 iPhone 开发新手 我想在我的应用程序中实现推送通知 我对此一无所知 谁给个示例代码 首先 您必须租用或拥有一台服务器 负责
  • Google 404 和 .NET 自定义错误页面

    我有一个带有自定义 404 页面的 ASP NET 2 0 网站 当找不到内容时 站点会提供自定义 404 页面 并添加查询字符串 aspxerrorpath mauro aspx 404 页面本身是由一个HTTP http en wiki
  • 如何在不使用剪贴板的情况下从活动应用程序获取选定的文本

    我在做什么 我的主要目的是使用户友好text to speech供个人在 Win 7 上使用 该方法应该适用于 Google Chrome VS 和 Eclipse 代码示例 Following code creates global ke
  • 在 netezza 中使用左连接进行更新

    我需要在更新期间对 netezza 中的两个表执行左连接 我怎样才能做到这一点 三个表的左连接可以工作 但两个表则不行 UPDATE table 1 SET c2 t2 c2 FROM table 1 t1 LEFT JOIN table
  • 当输入被禁用时,如何更改

    我有一些标签 例如
  • Redux actions/reducers 与直接设置状态

    我是 Redux 新手 我无法理解操作和减速器与直接修改存储的组件的价值 在 Redux 中 您的 React 组件不会直接更改存储 相反 他们发送一个动作 有点像发布一条消息 然后 reducer 处理该操作 有点像消息订阅者 并更改状态
  • 如何让 Angular Material 图标在我的 Angular 应用程序中显示轮廓?

    我目前有
  • Microsoft SQL Server 数据工具包未正确加载

    我的 VS 2013 安装的所有内容似乎都工作正常 除非我右键单击服务器资源管理器中的表 我正在尝试使用数据工具来查看 MS SQL 数据库中的表 这是当我右键单击 VS 2013 时弹出的消息 The Microsoft SQL Serv
  • 在 MySQL 中选择随机行

    我正在开发一个测验网站 并且我有一个存储所有问题的数据库 有不同类型的测验 如数学 科学 历史等 所有问题都存储在一张表中 我的问题表如下所示 questions qno int type int question qno是主键 并且typ
  • 在 C# 中绘制视频

    我正在制作一个应用程序 允许用户应用某些工具来分析视频和图像 我需要帮助 了解如何在表单中加载到 Windows Media Player 的视频上实际绘制 写入并能够将其保存 它需要能够让用户徒手绘制并在其上绘制形状 提前致谢 克里斯 使
  • 如何根据最接近(或最近)的时间戳合并两个数据帧

    假设我有一个数据框 df1 其中包含 A 和 B 列 A 是时间戳列 例如 unixtime B 是某个值的列 假设我还有一个数据框 df2 其中包含 C 和 D 列 C 也是一个 unixtime 列 D 是包含一些其他值的列 我想模糊m
  • 如何从Nuget包中选择目标框架

    我正在使用 NuGet 包 其中包含 2 个目标框架的程序集 net45 和 netstandard1 5 我的项目针对的是net471 因此与netstandard1 5兼容 当我添加包时 它从 net45 文件夹复制 dll 如何强制
  • 如何在 Rails 3 中使用 AJAX 请求实现重定向响应?

    我有一个简单的场景 我想请求一个页面 请求格式为AJAX 如果该请求的控制器 操作逻辑中有一些错误 我想重定向到错误页面 问题是重定向不是 JavaScript 响应类型 所以我不确定它是否有效 如果没有错误 那么我希望通过适当的 Java
  • 属性的名称应该与其类型相同吗?

    我有时会看到这样写的代码 public class B1 public class B2 private B1 b1 public B1 B1 get return b1 set b1 value 即类 B2 有一个名为 B1 的属性 该属
  • APEX_MAIL.SEND 函数无法工作,尽管它没有给出任何错误

    必须从以下地址发送电子邮件oracle apex using APEX MAIL SEND 方法 我正在使用代码 BEGIN apex mail send p to gt email protected cdn cgi l email pr
  • 集合运算的复杂性

    这就是我正在做的 字符串一 某个字符串 字符串二 某个字符串 我想知道字符串中的所有字符one and two它们应该按第一串中的顺序排列 我编写了一个 Java 程序 它通过使用 Collections 对两个集合执行设置操作 我想知道执
  • 组件定义 React 中 Babel 语法错误

    我只是遵循这些解释 https babeljs io blog 2015 06 07 react on es6 plus https babeljs io blog 2015 06 07 react on es6 plus 其中提到 The
  • app.set('port', port) '类型错误:未定义不是函数'。初学者,需要思路

    我是一名业余爱好者 正在学习使用 Node js 进行构建 我一直在按照教程创建我的第一个 Node js 应用程序 它工作得很好 直到我输入 npm start 日志是 C node nodeteest3 bin www 16 TypeE