node.js - 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”消息仅在路由被击中时打印。
任何人都可以解释同样的原因吗?
解决方案
简短的回答:
- 如果我们导入它,模块内的所有代码都会运行,
- 发生交互作用时将运行回调函数。
推荐阅读
- javascript - 使用 Firebase SDK 上传文件
- oracle - ORA-01017 无效的用户名/密码登录被拒绝
- postgresql - 从另一个映射表中选择查询中的列
- list - Lisp 函数,它接受两个列表并返回它们的乘积
- ios - iOS 静默推送通知已取消
- javascript - 在 jquery 调色板颜色选择器插件中设置初始颜色
- json - 如何更新存储在 PostgreSQL 文本字段中的 json 数据?
- floating-point - 如何标准化两个 IEEE754 单精度数之和?
- node.js - Nodejs express bodyParser 丢弃对象键
- javascript - 如何使用jQuery动态获取输入值?