express.js:天真的技术探究

时间:2013-08-25 02:48:52

标签: node.js express

我在查看express.js路线时遇到了一些麻烦

如果我设置了开箱即用的hello world应用程序,我将获得一条基本设置,只需一条路线

app.get('/', routes.home);

在express.js文档中,在app.routes中我的单行路有一个像这样的对象:

{ path: '/',
method: 'get',
callbacks: [Object],
keys: [],
regexp: /^\/\/?$/i }

但是如果我将console.log放入对象

console.log(app.routes.get[0].callbacks[0]);

我得到“[功能]”,如果我做

console.log(JSON.stringify(app.routes.get[0].callbacks[0]));

我得到“未定义”,因为回调是一个函数......

这里发生了什么,技术上?我怎样才能看看我为路线定义的回调?

1 个答案:

答案 0 :(得分:1)

$ node server.js 
{ get: 
   [ { path: '/',
       method: 'get',
       callbacks: [Object],
       keys: [],
       regexp: /^\/\/?$/i },
     { path: '/hello.txt',
       method: 'get',
       callbacks: [Object],
       keys: [],
       regexp: /^\/hello\.txt\/?$/i } ] }

[Function]

undefined

<强>代码

var express = require('express');
var app = express();
app.get('/', function(req, res){
      res.send('Hello World');
});
app.get('/hello.txt', function(req, res){
      res.send('Hello World');
});
console.log(app.routes);
console.log(app.routes.get[0].callbacks[0]);
console.log(JSON.stringify(app.routes.get[0].callbacks[0]));

Callbacks[0]有一个函数,而不是JSON对象。这就是JSON.stringify返回undefined

的原因