Utilizzo con JavaScript
Traduzione Beta Non Ufficiale
Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →
TypeORM può essere utilizzato non solo con TypeScript, ma anche con JavaScript. Tutto funziona allo stesso modo, tranne per il fatto che è necessario omettere i tipi. Se la tua piattaforma non supporta le classi ES6, dovrai definire oggetti con tutti i metadati richiesti.
app.js
var typeorm = require("typeorm")
var dataSource = new typeorm.DataSource({
type: "postgres",
host: "localhost",
port: 5432,
username: "test",
password: "admin",
database: "test",
synchronize: true,
entities: [require("./entities/Post"), require("./entities/Category")],
})
dataSource
.initialize()
.then(function () {
var category1 = {
name: "TypeScript",
}
var category2 = {
name: "Programming",
}
var post = {
title: "Control flow based type analysis",
text: "TypeScript 2.0 implements a control flow-based type analysis for local variables and parameters.",
categories: [category1, category2],
}
var postRepository = dataSource.getRepository("Post")
postRepository
.save(post)
.then(function (savedPost) {
console.log("Post has been saved: ", savedPost)
console.log("Now lets load all posts: ")
return postRepository.find()
})
.then(function (allPosts) {
console.log("All posts: ", allPosts)
})
})
.catch(function (error) {
console.log("Error: ", error)
})
entity/Category.js
var EntitySchema = require("typeorm").EntitySchema
module.exports = new EntitySchema({
name: "Category", // Will use table name `category` as default behaviour.
tableName: "categories", // Optional: Provide `tableName` property to override the default behaviour for table name.
columns: {
id: {
primary: true,
type: "int",
generated: true,
},
name: {
type: "varchar",
},
},
})
entity/Post.js
var EntitySchema = require("typeorm").EntitySchema
module.exports = new EntitySchema({
name: "Post", // Will use table name `post` as default behaviour.
tableName: "posts", // Optional: Provide `tableName` property to override the default behaviour for table name.
columns: {
id: {
primary: true,
type: "int",
generated: true,
},
title: {
type: "varchar",
},
text: {
type: "text",
},
},
relations: {
categories: {
target: "Category",
type: "many-to-many",
joinTable: true,
cascade: true,
},
},
})
Per approfondire, puoi consultare questo esempio typeorm/javascript-example.