首页 > 解决方案 > Express Route 在初始化阶段调用方法?

问题描述

我有一个基本的快递应用程序,其中 app.ts 看起来像

import * as express from "express";
const application: express.Application = express();
 
application.get("/", function(
  request: express.Request,
  response: express.Response
) {
  console.log("Inside Router ");
  response.json({ "test": true});
}); 

application.listen(3000, function() {
  console.log("sever ready");
});

在这种情况下,当路由被命中时,控制台消息“Inside Route”会打印在服务器控制台中。

然而,

包装器.ts


const methods = () => {

};

console.log("This is a testable offence");
export const wrapperMethod = {methods};

 const express = require('express');
const wrapper = require('./wrapper');
const application = express();


application.get("/city", function(
  request,
  response
) {
  console.log("when");
  let results = {};
  let test = wrapper.methods();
  response.json(results);
}); 

application.listen(3000, function() {
  console.log("sever ready");
});

NPM 命令:

nodemon ts-node ./src/index.ts

在这种情况下,在服务器启动时,我们可以观察到“This is a testable offence”正在打印。

但是“Inside Route”消息仅在路由被击中时打印。

任何人都可以解释同样的原因吗?

标签: node.jstypescriptexpressexpress-router

解决方案


简短的回答:

  1. 如果我们导入它,模块内的所有代码都会运行,
  2. 发生交互作用时将运行回调函数。

推荐阅读