node.js - Node JS : 500 Server Error

标签 node.js

我对 Node js 这个东西有点陌生。所以,请耐心等待。

我在 dotNetFin.js 中有一个 json 字符串数组。我不确定为什么会出现错误(当我切换到“关于”页面时),并且在命令提示符窗口中,它显示“未定义不是函数”

此外,如果我在 app.js 中包含该 json 数组,一切都会正常。

这是我的代码:

app.js

var express = require('express');

var app = express();
app.set('port', process.env.PORT || 3000);

app.get('/', function (req, res) {
    res.render('home');
});

var teamData = require('./dotnetFin.js');
app.get('/about', function (req, res) {
    res.render('about', { dotnet: teamData.getTeamData() });
});
//custom 404 page
app.use(function (req, res) {
    res.type('text/plain');
    res.status(404);
    res.send('404 Not Found');
});

app.use(function (err, req, res, next) {
    console.log(err.stack);
    res.type('text/plain');
    res.status(500);
    res.send('500 Server Error');
});

app.listen(app.get('port'), function () {
    console.log('Express started on server' + app.get('port'));
});

var handleBars = require('express3-handlebars').create({ defaultLayout: 'main' });
app.engine('handlebars', handleBars.engine);
app.set('view engine', 'handlebars');

dotnetFin.js

var dotnetTeam = ["V",  
                        "M", 
                        "A",  
                        "H", 
                        "A", 
                        "G", 
                        "K"];

var getTeamData = function () {
    return dotnetTeam;
};

main.handlebars

<!doctype html>
<html>
  <head>
    <h2>Fin</h2>
  </head>
  <body>
    {{{body}}}
  </body>
</html>

about.handlebars

<h1>About Fin</h1>
<h2>Dotnet Team</h2>
<h3>{{dotnet}}</h3> 

错误快照:

enter image description here

enter image description here

最佳答案

您需要从 dotnetFin.js 文件导出 getTeamData 函数。所以只要改变,

var getTeamData = function () {
    return dotnetTeam;
};

exports.getTeamData = function () {
    return dotnetTeam;
};

并且您的 API 应该可以工作。

您始终需要从 Node 模块(.js 文件)导出变量或方法,以便能够从需要该模块的其他文件访问它们。

关于node.js - Node JS : 500 Server Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33234641/

相关文章:

javascript - 将 node.js-mysql 结果返回给函数

node.js - 设置授权后 Express-Gateway 响应错误

javascript - 查询mongodb中的javascript日期对象

javascript - redis sub/pub 进出 io.connect 回调

node.js - 在 Angular4 CLI 中读取 Azure 应用程序设置

node.js - 正确版本的 npm 的混淆信息

node.js - node-postgres 上的 postgres 复合类型

mysql - Node JS mysql插入查询使变量值未定义

javascript - Mongoose 保存失败且没有错误

javascript - 使用 Jasmine 或任何其他替代方案在 Node 上运行测试 .mjs/ESM