npm包裹@types/express和express有什么区别



我正在尝试构建节点服务器,我不知道是使用@types/express还是express。

这是我的服务器,我想建立

'use strict';
const express = require('express');
const http = require('http');
const path = require('path');
const genuid = require("gen-uid");
const morgan = require('morgan');
const morganBody = require('morgan-body');
const bodyParser = require('body-parser');
const moment = require('moment');
const routes = require('./server/index.route');
//const config = require('./server/config/config') ;
const app = express();
morgan.token('user', (req, res) => {
if (req.user) {
return req.user.id;
} else {
return "Guest";
}
});
morgan.token('timestamp', (req, res) => {
return moment().format();
});
morgan.token('token', (req, res) => {
if (!req.requestId) {
req.requestId = "[" + genuid.token(true).substr(0, 8) + "]";
}
return req.requestId;
});
app.use(morgan(':token :timestamp :method HTTP/:http-version :user-agent :url :user :remote-addr ', {
immediate: true
}));
app.use(morgan(':token :timestamp :method HTTP/:http-version :user-agent :url :user :remote-addr :status :response-time'));
app.use(bodyParser.json({ limit: '50mb' }));
morganBody(app);
app.use(bodyParser.urlencoded({ extended : false }));
app.use(express.static(path.join(__dirname, '/dist')));
const logRequestStart = (req, res, next) => {
//console.info(`${req.requestId} ${req.method} ${req.originalUrl}`);
console.info(`${req.requestId} ${JSON.stringify(req.body)}`); 
res.on('finish', () => {
//console.info(`${req.requestId} ${res.statusCode} ${res.statusMessage}; ${res.get('Content-Length') || 0}b sent`);
//console.log(res.body); 
})
next()
}
app.use(logRequestStart);

let port = 4440;
function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}
var bind = typeof port === 'string'?'Pipe ' + port:'Port ' + port;
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;
}
}
function onListening() {
var addr = server.address();
var bind = typeof addr === 'string'?'pipe ' + addr: 'port ' + addr.port;
console.log('Listening on ' + bind);
}

let server;
server = http.createServer(app);

app.set('port', port);
app.set('view engine', 'ejs');

server.on('error', onError);
server.on('listening', onListening);
server.listen(port);
routes(app);
module.exports = app;

您需要同时使用依赖项

express和@types/express

因为typescript不知道express类的类型,所以@types/express在中有帮助

最新更新