Nodejs最好的ORM - TypeORM
https://github.com/typeorm/typeorm
这个框架用起来的感觉就像在nodejs 中玩jpa一样爽, 前提是你必须喜欢使用TypeScript 来开发nodejs应用
集成还是很简单的
准备工作
1.VSCODE
2.NODE.JS 6.11.5
3.EXPRESS 4.15.5 //版本不同 一切都大不相同
4.TypeScript
如果安装过程中有问题 请百度或者看我前边的博文
使用TypeScript开发Express4
http://blog.csdn.net/winnershili/article/details/78895396
1. 安装TypeOrm
npm install typeorm -g
npm install reflect-metadata --save
2.生成 一些工程文件 这个操做会覆盖你原有的文件 谨慎使用
typeorm init --name MyProject --database mysql
3.安装依赖
进入到 MyProject 目录执行
npm install
4.修改配置文件
{
"type": "mysql",
"host": "localhost",
"port": 3306,
"username": "test",
"password": "test",
"database": "test",
"synchronize": true,
"logging": false,
"entities": [
"src/entity/**/*.ts"
],
"migrations": [
"src/migration/**/*.ts"
],
"subscribers": [
"src/subscriber/**/*.ts"
]
}
建议把其中的 entities 中的路径 修改成 你ts文件生成的js文件的 entity 的目录
否则会报错
"entities":["entity/*.js"]
5.接下来建立实体类
import {Entity, Column} from "typeorm";
@Entity()
export class Photo {
@Column()
id: number;
@Column()
name: string;
@Column()
description: string;
@Column()
filename: string;
@Column()
views: number;
@Column()
isPublished: boolean;
}
6.最后放出www文件的配置 基本上完成了 我的解决方案比官方的好 哈哈
#!/usr/bin/env node
/**
* Module dependencies.
*/
var app = require('../app');
var debug = require('debug')('node:server');
var http = require('http');
var typeorm = require("typeorm");
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
typeorm.createConnection().then(function (connection) {
console.info('connect mysql success');
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
console.info('create server success');
}).catch(function(error) {
console.log("Error: ", error);
});
7.测试 打开Express4 中的例子文件 users.ts 我已经修改为Typescript 如下
import * as express from 'express';
import {getConnection} from "typeorm";
import {User} from '../entity/User';
var router = express.Router();
router.get('/', function(req, res, next) {
getConnection().getRepository(User).find().then(result => {
res.send(result);
});
});
module.exports = router;
这访问数据库的方式就好像是一种艺术.