Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在NodeJs中存储上次接收到的REST调用的日期/时间_Javascript_Node.js_Rest_Node.js Connect - Fatal编程技术网

Javascript 在NodeJs中存储上次接收到的REST调用的日期/时间

Javascript 在NodeJs中存储上次接收到的REST调用的日期/时间,javascript,node.js,rest,node.js-connect,Javascript,Node.js,Rest,Node.js Connect,我已经在NodeJs中编写了一个restapi,我想知道如何存储上次调用的日期和时间 下面是GET url调用 http://localhost:8080/api/books/metadata?id=12 筛选此id的代码被截断 您可以添加“全局路由”,以便在设置服务器时与任何api调用一起使用(即,如果您使用的是Express或restify或类似工具): (请求参数可能已经存储了时间。) 其中一些框架将有一个“after”事件,该事件在请求被完全处理后触发(因此该日志记录实际上不是链的一部分

我已经在NodeJs中编写了一个restapi,我想知道如何存储上次调用的日期和时间

下面是GET url调用
http://localhost:8080/api/books/metadata?id=12

筛选此id的代码被截断
您可以添加“全局路由”,以便在设置服务器时与任何api调用一起使用(即,如果您使用的是Express或restify或类似工具):

(请求参数可能已经存储了时间。)

其中一些框架将有一个“after”事件,该事件在请求被完全处理后触发(因此该日志记录实际上不是链的一部分)。如restify中的示例,我在其中构建了一条自定义日志消息:

server.on( 'after', function logRequest( req, res, route, error ) {

    var latency = res.get( 'Response-Time' );
    if ( typeof( latency ) !== 'number' )
        latency = Date.now() - req._time;

    var obj = {
        userAgent: req.headers[ 'user-agent' ],
        url: req.url,
        method: req.method,
        statusCode: res.statusCode,
        req_id: req.getId()
    };
    obj.latency = latency;
    server.log.info( obj );
} );

在本例中,我使用的是restify的日志中间件,但您可以使用自己的日志记录器,
console.log
、append-to-file等。

我使用的是Connect-rest,另外,我希望每个单独的项目都使用它,这意味着每个单独的项目可能有不同的访问时间!!另一个框架的
.use()
.on('after')
方法是路由链的一部分。因此,对于通过系统的每个请求,他们都会被调用,每个请求都有不同的时间。(您可能需要比
newdate()
更细粒度的方法)。我认为
connect
将为
app.use()提供一个选项。
app.use(function (req, res, next) {
    console.log( "Got a request at " + new Date() ); //might want to format date
});
server.on( 'after', function logRequest( req, res, route, error ) {

    var latency = res.get( 'Response-Time' );
    if ( typeof( latency ) !== 'number' )
        latency = Date.now() - req._time;

    var obj = {
        userAgent: req.headers[ 'user-agent' ],
        url: req.url,
        method: req.method,
        statusCode: res.statusCode,
        req_id: req.getId()
    };
    obj.latency = latency;
    server.log.info( obj );
} );