TypeScript는 여기서 너무 많이 설명하지 않습니다. JavaScript의 상위 집합이며 ES6 표준을 지원합니다. 구체적인 구문과 사용법은 이후 블로그에서 설명합니다. 간단한 사용은 https://blog.csdn.net/qq_41061437/article/details/112908807을 참조하십시오.
Express는 가장 작은 규모를 유지하는 유연한 Node.js 웹 애플리케이션 개발 프레임 워크로 웹 및 모바일 애플리케이션을위한 강력한 기능 세트를 제공합니다. 개인적으로 이것은 라우팅에 자주 사용되는 전통적인 자바 개발에서 SpringMVC로 이해 될 수 있습니다.
WebPack은 모듈 패커입니다. WebPack의 주요 목표는 JavaScript 파일을 함께 패키징하는 것이며 패키징 된 파일은 브라우저에서 사용되지만 모든 리소스를 변환, 패키징 (번들) 또는 패키징 (패키징) 할 수도 있습니다.
첫 번째는 해당 패키지를 설치하는 것입니다.
npm install express
npm install mssql
npm install webpack
여기에 사용 된 sqlserver 데이터베이스의 경우 먼저 config 폴더를 만들고 config.ts를 만듭니다.
export const mssqlconfig = {
user: 'xxx',//用户名
password: 'xxxxxxxx',//密码
server: 'xx.xxx.x.xxx',//服务器地址
database: 'xxx',//数据库
port: 1433,
options:{
encrypt: true,
enableArithAbort: true
},
pool:{
max:10,
min:5,
idleTimeoutMillis:30000
},
}
완료 후 tsc 명령을 사용하여 ts 파일을 js 파일로 구문 분석합니다.
Object.defineProperty(exports,"__esModule",{value:true});
exports.mssqlconfig = void 0;
exports.mssqlconfig = {
user: 'xxx',//用户名
password: 'xxxxxxxx',//密码
server: 'xx.xxx.x.xxx',//服务器地址
database: 'xxx',//数据库
port: 1433,
options:{
encrypt: true,
enableArithAbort: true
},
pool:{
max:10,
min:5,
idleTimeoutMillis:30000
},
};
데이터베이스 연결 클래스 dbUtil을 만듭니다.
import mssql = require('mssql');
import config = require("../config/config");
export class dbUtil{
dbClient(sql:string,callBack:(results:any) => any):any{
var conn = new mssql.ConnectionPool(config.mssqlconfig);
var req = new mssql.Request(conn);
conn.connect(function (err){
if(err){
callBack(err);
}
req.query(sql,function(err,results){
if(err){
calBack(err);
}
else{
callBack(results);
}
conn.close();
})
});
}
}
ts 명령으로 구문 분석 한 후 js :
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.dbUtil = void 0;
var mssql = require("mssql");
var config = require("../config/config");
var dbUtil = /** @class */ (function () {
function dbUtil() {
}
dbUtil.prototype.dbClient = function (sql, callBack) {
var conn = new mssql.ConnectionPool(config.mssqlconfig);
var req = new mssql.Request(conn);
conn.connect(function (err) {
if (err) {
console.log(err);
callBack(err);
}
req.query(sql, function (err, results) {
if (err) {
console.log(err);
callBack(err);
}
else {
callBack(results);
}
conn.close();
});
});
};
return dbUtil;
}());
exports.dbUtil = dbUtil;
서버 폴더를 생성하고 그 안에 server.js 파일을 생성합니다. 이것은 전체 프로젝트의 입구로 사용되며 package.json에서 구성해야합니다.
"scripts": {
"start": "npm run server",
"server": "node server/server.js",
"lint": "tslint --project tsconfig.json -t codeFrame 'src/**/ts'",
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "cross-env NODE_ENV=development webpack-dev-server --hot --config './webpack.config.js' --open",
"build": "node build/build.js"
},
구성 후 server.js 파일을 작성하십시오.
var express = require('express');
var bodyParser = require('body-parser');
var expressTestRouter = require('../routes/ExpressTestRoutes');
var port = process.env.PORT || 30001;
var app = express();
var apiRoutes = express.Router();
//使用bodyparser中间件
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.use(apiRoutes);
app.use('/api/expressTest',expressTestRouter );
apiRoutes.get('/api/base/get', function (req, res) {
res.json('hello world');
});
module.exports = app.listen(port, function (err) {
if (err) {
console.log(err);
return;
}
console.log('Listening at http://localhost:' + port + '\n');
});
Express는 여기서 직접 사용됩니다. 실제로는 가이드 패키지와 동일한 server.js에서 참조되는 ExpressTestRoutes에 대한 경로를 정의합니다. app.use ( '/ api / expressTest', expressTestRouter)를 사용하여 경로를 정의 된 모니터 포트 포트는 30001입니다. "hello world"를 반환하는 인터페이스는 여기에 직접 정의되어 있습니다. 모든 쓰기가 완료된 후 / api / express / base / get을 방문하여 반환 된 "hello world"를 가져올 수 있습니다. 그 페이지.
쓰기 라우팅 :
import expressTestService = require('../service/impl/ExpressTestServiceImpl');
import express = require('express');
var router = express.Router();
router.get('/getTest', function (req, res) {
new expressTestService.ExpressTestServiceImpl().getTest(req.query.loginName, function (result) {
res.send(result);
})
});
module.exports = router;
여기에 설명 된 것은 매개 변수 인터페이스가 있습니다. 매개 변수를 가져 오려면 req.query 다음에 매개 변수 이름을 사용하십시오. ts 명령은 다음과 같이 js로 구문 분석됩니다.
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var expressTestService = require("../service/impl/ExpressTestServiceImpl");
var express = require("express");
var router = express.Router();
router.get('/getTest', function (req, res) {
new expressTestService.ExpressTestServiceImpl().getTest(req.query.loginName, function (result) {
res.send(result);
});
});
module.exports = router;
인터페이스 클래스를 작성하십시오.
import express = require("express")
export interface ExpressTestService{
getTest(date:any,callBack:(results:any)=>any):any;
}
ts 명령은 js로 구문 분석되고 인터페이스에 실제 구문 분석 코드가 없습니다.
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
그런 다음 인터페이스 구현 클래스를 작성하십시오.
import expressTestService = require("../ExpressTestService );
import expressTestDao = require("../../dao/ExpressTestDao");
export class ExpressTestServiceImpl implements expressTestService.ExpressTestService {
getTest(date: any, callBack: (results: any) => any): any {
new expressTestDao .ExpressTestDao().getTest(loginName, function (result) {
callBack(result);
})
};
}
js를 구문 분석하는 ts 명령 :
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExpressTestServiceImpl = void 0;
var expressTestDao = require("../../dao/ExpressTestDao ");
var ExpressTestServiceImpl = /** @class */ (function () {
function ExpressTestServiceImpl () {
}
//通过月份时间获取绩效
ExpressTestServiceImpl.prototype.getTest = function (loginName, callBack) {
new expressTestDao.ExpressTestDao ().getTest (loginName, function (result) {
callBack(result);
});
};
return ExpressTestServiceImpl ;
}());
exports.ExpressTestServiceImpl = ExpressTestServiceImpl ;
dao 레이어 작성 :
import db = require("../utils/dbUtil");
import express = require("express")
export class ExpressTestDao {
getTest(loginName:any, callBack: (results: any) => any): any {
new db.dbUtil().dbClient("SELECT * FROM TESTDB WHERE LOGIN_NAME = '" + loginName+"'", callBack);
};
}
ts 명령 분석 :
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExpressTestDao = void 0;
var db = require("../utils/dbUtil");
var ExpressTestDao = /** @class */ (function () {
function ExpressTestDao() {
}
ExpressTestDao.prototype.getTest= function (date, callBack) {
new db.dbUtil().dbClient("SELECT * FROM TESTDB WHERE LOGIN_NAME= '" + loginName+ "'", callBack);
};
return ExpressTestDao;
}());
exports.ExpressTestDao = ExpressTestDao ;
이 시점에서 전체 프로젝트 프로세스가 완료되었습니다. 프로젝트를 시작하고 도구로 테스트 할 수 있습니다.
server.js에서 첫 번째 테스트 / api / base / get :
그런 다음 데이터를 얻기 위해 데이터베이스에 연결하는 인터페이스를 테스트 할 수 있습니다. 특별한 이유로이 테스트는 여기에 표시되지 않습니다.