在HAPI服务器中出现错误

超级堆栈

我正在构建一个简单的日志应用程序,并尝试实现模块化以使代码更具可读性。但是,当我启动我的应用程序时遇到了一些麻烦。我有两个文件,index.js这是我配置服务器和routes.js路由逻辑的地方。我编写路线的方式与hapi api中的api文档一致

我希望有人可以帮助我理解为什么出现以下错误:

/Users/mario/projects/loGym/node_modules/hapi/node_modules/hoek/lib/index.js:425
    throw new Error(msgs.join(' ') || 'Unknown error');
          ^
Error: Missing or undefined handler: /
    at Object.exports.assert (/Users/mario/projects/loGym/node_modules/hapi/node_modules/hoek/lib/index.js:425:11)
    at new module.exports.internals.Route (/Users/mario/projects/loGym/node_modules/hapi/lib/route.js:36:10)
    at /Users/mario/projects/loGym/node_modules/hapi/lib/router.js:110:25
    at Array.forEach (native)
    at /Users/mario/projects/loGym/node_modules/hapi/lib/router.js:107:17
    at Array.forEach (native)
    at internals.Router.add (/Users/mario/projects/loGym/node_modules/hapi/lib/router.js:104:13)
    at internals.Server._route (/Users/mario/projects/loGym/node_modules/hapi/lib/server.js:471:18)
    at internals.Server.route (/Users/mario/projects/loGym/node_modules/hapi/lib/server.js:465:10)
    at Object.<anonymous> (/Users/mario/projects/loGym/index.js:10:8)

我不能正确导出模块吗?

这是我的代码routes.js

var path = require('path');
var _ = require('underscore');
var couchbase = require('couchbase');

//Connect to database.

var db = db || new couchbase.Connection({host: 'localhost:8091', bucket: 'default'}, function(err) {
    if (err) {
      console.log('Connection Error', err);
    } else {
      console.log('Connected!');
  }
 });
console.log(db);


module.exports = [
    {method: 'GET', path: '/static/{param*}', config: { handler: { directory: { path: 'static'}}}},
    {method: 'GET', path:'/', config: landingPage},
    {method: 'GET', path:'/workouts', config: getWorkouts},
    {method: 'GET', path:'/workouts/musclegroup', config: getMusclegroup},
    {method: 'POST', path:'/addworkout', config: addWorkout}
];



var landingPage = {
    handler: function(req, reply) {
        reply.file('index.html');
    }
};

var getWorkouts = {
    handler: function (req, reply) {
        // set options for databse query
        var q ={
          descending: true,
          stale: false
        };

        // show multiple exercises - db.view(designDocument, viewName, options)
        db.view('workout', 'exercise', q).query(function(err, values){
            // use pluck method from underscore to retrieve data
            var keys = _.pluck(values, 'id');
            console.log("Keys: " + keys);

            //fetch multiple documents based on the 'keys' object
            db.getMulti(keys, null, function(err, results){
                console.log('Results: ' + results);

                var workouts = [];
                for (var prop in results) {
                  workouts.push(results[prop].value);
                }
                reply(workouts);
            });
        });
    }
};


var getMusclegroup = {
  handler: function (req, reply) {
        var q = {
          descending: true,
          stale: false
        };

        db.view('workout', 'exercise', q).query(function(err, values){

            var keys = _.pluck(values, 'id');

            db.getMulti(keys, null, function(err, results){

                var muscleGroups = [];
                for (var prop in results) {
                    console.log(typeof results);
                    console.log(results[prop].value.workout);
                    muscleGroups.push(results[prop].value.workout);
                }
                reply(muscleGroups[0]);
            });
        });
    }
};


var addWorkout = {
    handler: function(req, reply){

      var d = new Date();
      var cd = d.getDate() + "-" + (d.getMonth()+1) + "-" + d.getFullYear();

      // sets schema for workout
      var payload = {
          "personId": "personId", //to later be replaced with actual username
          "date": cd,
          "workout": [
              {
                "exercise": req.query.exercise,
                "musclegoup": req.query.musclegroup,
                "sets": [
                  {
                    "reps": req.query.reps,
                    "kg": req.query.kg
                  }
                ]
              }
          ]
      };

      // defines unique key for data
      var key = payload.personId + payload.date;
      console.log(key);

      // adds payload to database
      db.add(key, payload, function(error, results){
          if (error) {
              console.log(error);
              reply(error + "\n");
          }
          console.log(results);
          reply(payload);
      });
    }
};

这是我的代码index.js

var Hapi = require('hapi');
var path = require('path');
var Joi = require('joi');
var rs = require('./lib/modules/routes.js');


var config= { };
var server = Hapi.createServer(process.env.PORT || 8080, config);

server.route(rs);

server.start(function(){
  console.log("Server started: " + server.info.uri);
});

module.exports = server;
鄂尔多斯语

您正在尝试使用landingPagegetWorkoutsgetMusclegroup,和addWorkout变量定义之前。因此,要解决此问题,只需更改顺序,首先定义这些变量,然后创建路径:

var landingPage = {
    ...
};

var getWorkouts = {
    ...
};

var getMusclegroup = {
    ...
};

var addWorkout = {
    ...
};

module.exports = [
    {method: 'GET', path: '/static/{param*}', config: { handler: { directory: { path: 'static'}}}},
    {method: 'GET', path:'/', config: landingPage},
    {method: 'GET', path:'/workouts', config: getWorkouts},
    {method: 'GET', path:'/workouts/musclegroup', config: getMusclegroup},
    {method: 'POST', path:'/addworkout', config: addWorkout}
];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在HAPI服务器中出现错误

来自分类Dev

如何防止服务器脚本中出现Brokenpipe错误

来自分类Dev

在我的浏览器中出现服务器禁止错误

来自分类Dev

错误:连接到服务器时监视器线程中出现异常

来自分类Dev

Logstash服务器断开连接时,NodeJS中出现ECONNREFUSED错误

来自分类Dev

如果我上传图片,则在Nginx中出现内部服务器错误

来自分类Dev

每当SailsJS中出现错误时,Sails服务器就会关闭

来自分类Dev

Laravel-Ajax调用中出现500(内部服务器错误)

来自分类Dev

为什么在服务器/客户端聊天室程序中出现这些错误?

来自分类Dev

如果我上传图片,则在Nginx中出现内部服务器错误

来自分类Dev

将模型同步到服务器时,MySQL Workbench中出现错误1064

来自分类Dev

React Router / Hapi服务器端渲染错误

来自分类Dev

IIS中出现“现有主机被远程主机强行关闭”错误,但未出现VS dev服务器

来自分类Dev

curl服务器中出现“连接中的未知SSL协议错误”错误,但适用于本地

来自分类Dev

415不支持的媒体类型:在远程服务器中出现此错误,但在localhost中很好

来自分类Dev

当我在源代码控制下添加服务器时,在Xcode 5中出现错误

来自分类Dev

在服务器上运行但未在devbox上运行的Spring MVC应用程序中出现404错误

来自分类Dev

Docker中出现错误,“构建服务器不支持请求的实验功能exec.meta.security”

来自分类Dev

jquery .serialize() 用 + 替换空间,导致 LITESPEED 服务器在 Ajax 调用中出现 403 禁止错误

来自分类Dev

签出最新版本的 repo 后,“/”应用程序中出现 vb.net 服务器错误

来自分类Dev

HAPI服务器上的多个连接

来自分类Dev

Hapi js导出服务器变量

来自分类Dev

调用服务器到服务器CloudKit Web服务时出现授权错误

来自分类Dev

在纱线“ org.apache.hadoop.ipc.Client-运行时重试时,apche Pig中出现错误-重试连接到服务器:tasktracker3 / 10.201.2.169:50000”

来自分类Dev

哎呦,看起来像出事了。尝试在内置服务器上运行时Laravel 5中出现错误

来自分类Dev

Facebook图形API。应用程序通知:客户端获取通知,但服务器在响应中出现错误:不支持的发布请求

来自分类Dev

表达式或语句中出现意外的令牌“服务器”

来自分类Dev

异步身份验证登录功能中出现新异常时,Express服务器崩溃

来自分类Dev

表达式或语句中出现意外的令牌“服务器”

Related 相关文章

  1. 1

    在HAPI服务器中出现错误

  2. 2

    如何防止服务器脚本中出现Brokenpipe错误

  3. 3

    在我的浏览器中出现服务器禁止错误

  4. 4

    错误:连接到服务器时监视器线程中出现异常

  5. 5

    Logstash服务器断开连接时,NodeJS中出现ECONNREFUSED错误

  6. 6

    如果我上传图片,则在Nginx中出现内部服务器错误

  7. 7

    每当SailsJS中出现错误时,Sails服务器就会关闭

  8. 8

    Laravel-Ajax调用中出现500(内部服务器错误)

  9. 9

    为什么在服务器/客户端聊天室程序中出现这些错误?

  10. 10

    如果我上传图片,则在Nginx中出现内部服务器错误

  11. 11

    将模型同步到服务器时,MySQL Workbench中出现错误1064

  12. 12

    React Router / Hapi服务器端渲染错误

  13. 13

    IIS中出现“现有主机被远程主机强行关闭”错误,但未出现VS dev服务器

  14. 14

    curl服务器中出现“连接中的未知SSL协议错误”错误,但适用于本地

  15. 15

    415不支持的媒体类型:在远程服务器中出现此错误,但在localhost中很好

  16. 16

    当我在源代码控制下添加服务器时,在Xcode 5中出现错误

  17. 17

    在服务器上运行但未在devbox上运行的Spring MVC应用程序中出现404错误

  18. 18

    Docker中出现错误,“构建服务器不支持请求的实验功能exec.meta.security”

  19. 19

    jquery .serialize() 用 + 替换空间,导致 LITESPEED 服务器在 Ajax 调用中出现 403 禁止错误

  20. 20

    签出最新版本的 repo 后,“/”应用程序中出现 vb.net 服务器错误

  21. 21

    HAPI服务器上的多个连接

  22. 22

    Hapi js导出服务器变量

  23. 23

    调用服务器到服务器CloudKit Web服务时出现授权错误

  24. 24

    在纱线“ org.apache.hadoop.ipc.Client-运行时重试时,apche Pig中出现错误-重试连接到服务器:tasktracker3 / 10.201.2.169:50000”

  25. 25

    哎呦,看起来像出事了。尝试在内置服务器上运行时Laravel 5中出现错误

  26. 26

    Facebook图形API。应用程序通知:客户端获取通知,但服务器在响应中出现错误:不支持的发布请求

  27. 27

    表达式或语句中出现意外的令牌“服务器”

  28. 28

    异步身份验证登录功能中出现新异常时,Express服务器崩溃

  29. 29

    表达式或语句中出现意外的令牌“服务器”

热门标签

归档