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) '类型错误:未定义不是函数'。初学者,需要思路 的相关文章

  • Javascript Promise“then”始终运行,即使 Promise 未能执行

    我希望当调用第二个 then 时不执行第三个 then 但是 即使 Promise 被拒绝 调用第二个 then 并且代码返回 rejected 然后返回 undefined 它仍然调用第三个 then 如何不运行第三个 then 这样 未
  • 为什么 iife 在一个简单的例子中不起作用?

    我不明白为什么函数表达式调用不起作用并抛出错误 你能给我解释一下吗 var a function x alert x function a 1 谢谢大家 任务比我想象的要容易得多 这是因为 JS 将 IIFE 解析为函数的参数调用 这样做时
  • 以编程方式填写reactjs表单

    我正在编写一个用户脚本 但无法填写由reactjs制作的表单 我的代码 document querySelector id username value email protected cdn cgi l email protection
  • 如何修改每个JSON对象javascript

    我想修改里面的每个 JSON 值cooldown object cooldown user 1 This user2 0 This 在 Javascript 中使用 for 语句 我研究了好几个小时 只找到了内部的 blocks Edit
  • IE从哪个版本开始支持Object.create(null)?

    您可以通过多种方式在 JavaScript 中创建对象 creates an object which makes the Object prototype of data var data1 new Object Object liter
  • 在新的 Google 协作平台 <嵌入 HTML> 中使用 localStorage 和 IndexedDB 不起作用

    我正在尝试将新的 Google 协作平台用于我开发的网页 但是 我在存储本地数据时遇到了问题 本地文件在 Windows 和 Apple safari chrome 中运行良好 从 Google 协作平台尝试一下 没有什么乐趣 此外 在 s
  • 如何在react-bootstrap中禁用表单提交的

    在下面的代码片段中 我有许多文本类型的输入表单 如果用户点击 我似乎会得到相同的合成事件 就像他们按下提交按钮一样 我想忽略作为表单提交 只允许一个人按下 提交 按钮 我删除了一些表单组以减少示例 在所有情况下 按钮或 ENTER 键 e
  • Chrome 中的性能问题

    我目前正在从事一个相对较大的项目 使用 AngularJs 构建 应用程序的一部分是一个表单 您可以向其中添加任意数量的页面 不幸的是 添加了很多不必要的垃圾 即表示表单模型的对象可能会变得非常大 在某些时候 Chrome 基本上无法处理它
  • 如何使用javascript将大图像转换为十六进制?

    如果我尝试将图像转换为十六进制 无论我使用哪个函数 我都会收到此错误消息 该图像的大小为 7 MB 19812 毫秒 清理 1401 2 1455 0 gt 1401 2 1455 0 MB 9 9 0 ms 自上次 GC 以来 8 3 m
  • 带有淘汰赛js的隐形recaptcha

    我正在完成隐形验证码 但我在实现它时遇到问题 谷歌开发人员页面中的代码显示它应该是这样的
  • 可以在初始 DOM 解析期间/之前修改 DOM 吗?

    是否可以在初始 DOM 解析期间或之前修改 DOM 或者我是否必须等到 DOM 被解析和构建之后才能与其交互 更具体地说 是否有可能阻止 DOM 中的脚本元素使用用户脚本 内容脚本或 Chrome 或 Firefox 中的类似脚本运行 在解
  • 引导程序提前输入未填充承诺的响应

    我的引导程序预输入如下
  • 在打字稿中导入 json

    我是 typescript 的新手 在我的项目中 我们使用 typescript2 在我的要求之一中 我需要导入 json 文件 所以我创建了 d ts 文件如下 test d ts declare module json const va
  • 设置 cookie 时中断 JavaScript 执行

    当设置 cookie 时 是否可以始终中断浏览器开发人员工具中的 javascript 执行 无需显式设置 JS 断点 document cookie 在 html head 块的开头添加此代码片段效果很好
  • 检查 jQuery 1.7 中是否存在基于文本的选择选项

    所以我有以下 HTML 片段
  • 从数据库检查数据的异步解决方案各种循环子句

    我想要做的是异步检查数据库并从中获取结果 在我的应用程序中我试图实现Asynchronously将此步骤解决为 从数据库中检查手机号码JsonArray循环子句的种类 Create JsonArray从结果 打印创建的数组 我学到了足够多的
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • 带参数的事件监听器

    我想将参数传递给 JavaScript 中的事件侦听器 我已经找到了解决方案 但我无法理解它们为什么或如何工作以及为什么其他解决方案不起作用 我有 C C 背景 但是 Javascript 函数的执行有很大不同 您能否帮助我理解以下示例如何
  • 从 FileReader 设置背景图像样式

    我正在寻找一种解决方案 允许我从文件上传输入中获取文件并通过设置 document body style backgroundImage 来预览它 以下代码用于在 Image 元素中显示预览 function setImage id tar
  • Vue.js[vuex] 如何从突变中调度?

    我有一个要应用于 json 对象的过滤器列表 我的突变看起来像这样 const mutations setStars state payload state stars payload this dispatch filter setRev

随机推荐

  • 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