클라우드 9 ide에서 호스팅하는 내 노드/익스프레스 환경에서 타이프 스크립트를 사용하고 싶습니다. 그 중Typescript 컴파일 오류 : 'bodyofarser'속성이 'typeof e'유형에 없습니다.
내가 뭔가 재산권 'bodyParser은'유형에 존재하지 않는 그 중 몇 가지 오류와 함께 제공 app.ts를 컴파일하는 컴파일러를 얻기 위해 노력하고 문제가 생겼어요 '대해서 typeof 전자는'하나
I 응용 프로그램의 루트 폴더에 여러 개의 정의 파일, 즉 express.d.ts, node.d.ts, body-parser.d.ts가 있어야합니다. 나는 바디 파서 에러가 해결 될 것이라고 생각하면서 필사적으로 body-parser.d.ts를 추가했다.
명령 줄은 다음과 같습니다 TSC --sourcemap --module commonjs는 app.ts 다음과 같이 app.ts의 코드는 다음과 같습니다
// Import express with body parsers (for handling JSON)
import express = require('express');
var bodyParser = require('body-parser');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');
var expressValidator = require('express-validator');
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(express.bodyParser());
app.use(expressValidator([]));
// add session support!
app.use(express.cookieParser());
app.use(express.session({ secret: 'sauce' }));
app.use(app.router);
app.use(require('stylus').middleware(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'public')));
// Uncommend this line to demo basic auth
// app.use(express.basicAuth((user, password) => user == "user2" && password == "password"));
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
function restrict(req, res, next) {
if (req.session.authenticated) {
next();
} else {
res.redirect('/');
}
}
// Get
app.get('/', routes.index);
app.get('/login', routes.login);
app.get('/register', routes.register);
app.get('/users', user.list);
app.get('/AddPlayer', routes.addPlayer);
app.get('/dashboard', restrict, routes.dashboard);
app.get('/logout', routes.logout);
// POST
app.post('/AddPlayer', routes.AddPlayer);
app.post('/login', routes.loginUser);
app.post('/register', routes.registerUser);
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
실제로 TypeScript를 사용한 적이 없으므로 오류를 쉽게 찾을 수는 없지만 중요한 것은 'bodyParser'가 필요하지만'app.use (bodyParser.json());'과'app.use (bodyParser.urlencoded) '대신'app.use (express.bodyParser())'());'. – loganfsmyth