【问题标题】:NodeJS server - ReferenceError getData is not defined - but isn't it?NodeJS 服务器 - ReferenceError getData 未定义 - 但不是吗?
【发布时间】:2021-12-15 03:59:48
【问题描述】:

我得到一个 ReferenceError(未定义),但我不明白为什么。它在模块 dataController.js 中定义(最后)

Server.js

    {
    const express = require('express');
    
    const app = express(); 
    var path = require('path');
    var bodyParser = require('body-parser');
    var dataController = require('./dataController');
    const { nextTick } = require('process');
    //app.use(express.static(path.join(__dirname, ''))); //original worked with 'build'
    const basePathToData = path.join(__dirname, './');
    console.log('Basepath: '+ basePathToData);
    const options  = {
        dotfiles: 'allow',
        etag: true,
        extensions: ['htm', 'html','json'],
        index: false,
        maxAge: '1d',
        redirect: true,
        setHeaders: function (res, path, stat) {
          res.set('x-timestamp', Date.now());
    }
    };
    
    app.use(express.static(path.join(__dirname, 'build'))); //original
    //app.use(express.static(basePathToData, options));
    
    const port = 3003;
    app.get('/api/data',dataController.getData);
    console.log("Route ready: /api/data");
    
    app.listen(process.env.PORT || port); 
    console.log('listening on port: '+ port.toString());
    }

dataController.js

const path = require('path');
const fs = require('fs');

const basePathToData = path.join(__dirname, '.');

const getJsonData = function (basePathToData, filename) {
    var filename = path.join(basePathToData, filename);
    return JSON.parse(fs.readFileSync(filename, 'utf-8'));
};

exports.getData = function (request, response) {
    var data = getData(basePathToData, 'Vitals_observation.json');
    setTimeOut(function () {
        return response.send(data);
    }, 100);
};

这是运行 server.js 的错误的关键部分:

监听端口:3003 ReferenceError:未定义getData 在exports.getData (C:\Code-repos\partners-api\dataController.js:13:16) 在 Layer.handle [as handle_request] (C:\Code-repos\partners-api\node_modules\express\lib\router\layer.js:95:5) 在下一个(C:\Code-repos\partners-api\node_modules\express\lib\router\route.js:137:13) 在 Route.dispatch (C:\Code-repos\partners-api\node_modules\express\lib\router\route.js:112:3) 在 Layer.handle [as handle_request] (C:\Code-repos\partners-api\node_modules\express\lib\router\layer.js:95:5) 在 C:\Code-repos\partners-api\node_modules\express\lib\router\index.js:281:22 在 Function.process_params (C:\Code-repos\partners-api\node_modules\express\lib\router\index.js:335:12) 在下一个 (C:\Code-repos\partners-api\node_modules\express\lib\router\index.js:275:10) 在 SendStream.error (C:\Code-repos\partners-api\node_modules\serve-static\index.js:121:7) 在 SendStream.emit (events.js:375:28)

我已经准备好接受一个受教的时刻和一个学习的机会...... 谢谢

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    你的错误在这里:

    var data = getData(basePathToData, 'Vitals_observation.json');
    

    应该是getJsonData

    【讨论】:

      猜你喜欢
      • 2019-06-09
      • 2017-06-20
      • 2018-11-11
      • 1970-01-01
      • 2020-06-08
      • 2016-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多