javascript - TS-Express:“./bin/www”在 Express 4.x 中做了什么?怎么转成TS?
问题描述
#!/usr/bin/env node
/**
* Module dependencies.
*/
var app = require('../app');
var debug = require('debug')('event-internal-app-be:server');
var http = require('http');
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '8080');
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
/**
* Normalize a port into a number, string, or false.
*/
function normalizePort(val) {
var port = parseInt(val, 10);
if (isNaN(port)) {
// named pipe
return val;
}
if (port >= 0) {
// port number
return port;
}
return false;
}
/**
* Event listener for HTTP server "error" event.
*/
function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}
var bind = typeof port === 'string' ?
'Pipe ' + port :
'Port ' + port;
// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges');
process.exit(1);
break;
case 'EADDRINUSE':
console.error(bind + ' is already in use');
process.exit(1);
break;
default:
throw error;
}
}
/**
* Event listener for HTTP server "listening" event.
*/
function onListening() {
var addr = server.address();
var bind = typeof addr === 'string' ?
'pipe ' + addr :
'port ' + addr.port;
debug('Listening on ' + bind);
}
这是我的 ./bin/www 文件。
这是我的 app.ts 文件
import express,{ Application } from "express";
let app: Application;
app = express();
app.listen(1010,()=>{
console.log("hi")
});
这在转换为 TypeScript 时无法正常工作。我已经正确地提到了 tsconfig 文件。
抛出错误:/home/x/y-project/z-Backend/node_modules/typescript/lib/typescript.js:139173 var error = new Error("找不到源文件:'" + fileName + "'.") ; ^ 错误:找不到源文件:'/home/x/y/z-Backend/bin/www'。
解决方案
/bin/www
express-generator
是在您为新的 express 应用程序生成框架时创建的“主程序”或启动程序。生成器还将其名称放入package.json
.
恕我直言,express-generator
对于一个长期存在的生产应用程序来说,它并没有多大用处。你最好的选择是重写它。
推荐阅读
- xml - 如何使 XML 元素与结束元素不同?
- react-native - 在 React-Native 中使用 Jest 测试模拟端点方法
- java - 如何在 ant 命令中传递空值,以便替换 build.xml 文件中的属性值
- typescript - 如何在 Typescript 中通过回调函数的参数类型声明类型?
- python - 实时多图的 Tkinter GUI
- sql - 向克隆的 SQL 表插入数据失败
- flutter - 如何在flutter Firestore中使用orderby和where(isNotEqualTo)
- node.js - Puppeteer browser.newPage() 挂起
- angular - Formcontrolname 没有以角度动态附加
- twilio-api - 如何在不使用手机中的“+”和国家代码或twilio中的电话号码的情况下发送零的短信