NativeScript Angular 与 TypeORM
Posted
技术标签:
【中文标题】NativeScript Angular 与 TypeORM【英文标题】:NativeScript Angular with TypeORM 【发布时间】:2020-06-12 12:54:26 【问题描述】:我是 NativeScript 的新手。 我用 TypeORM 尝试了用户 SQLite。 创建连接时出现错误。 你能帮忙吗?
服务代码:
import createConnection, Connection, ConnectionOptions, getConnection from "typeorm/browser";
let driver = require("nativescript-sqlite");
// let driver = require("nativescript-sqlite");
@Injectable(
providedIn: "root"
)
export class DatabaseService
private dbConnection: Connection;
constructor()
this.initDB();
/* async createDb()
const db = new driver("limu.db").
;
*/
async initDB()
try
this.dbConnection = await getConnection();
// this.dbTasksRepository = await this.dbConnection.getRepository(TaskEntity);
catch (error)
console.log('!!!erorr', error);
await this.createConnection();
// this.dbTasksRepository = await this.dbConnection.getRepository(TaskEntity);
private async createConnection()
let dbOptions: ConnectionOptions;
dbOptions =
type: "nativescript",
driver,
database: "limu.db",
entities: [
TaskEntity
],
logging: ["error", "query", "schema"],
synchronize: true
;
try
this.dbConnection = await createConnection(dbOptions);
catch (error)
console.log(error);
错误:
../node_modules/typeorm/browser/driver/react-native/ReactNativeDriver.js 中的警告
找不到模块:错误:无法解析“/Users/Compik/Documents/Projects/limu/limu-native/node_modules/typeorm/browser/driver/react-native”中的“react-native-sqlite-storage”
@ ../node_modules/typeorm/browser/driver/react-native/ReactNativeDriver.js
@ ../node_modules/typeorm/browser/driver/DriverFactory.js
@ ../node_modules/typeorm/browser/connection/Connection.js
@ ../node_modules/typeorm/browser/index.js
@ ./app/core/database/database.service.ts
@ ./app/app.component.ts
@ ./app/app.module.ts
@ ./main.ts
Webpack 编译完成。监视文件更改。
Webpack 构建完成!
项目准备成功(ios)
成功传输设备 FD96C24D-FEB6-49AB-BF10-3D3A09F312BD 上的所有文件。
重启设备 FD96C24D-FEB6-49AB-BF10-3D3A09F312BD 上的应用程序...
***** 致命的 javascript 异常 - 应用程序已终止。 *****
本机堆栈跟踪:
1 0x1080c780e NativeScript::reportFatalErrorBeforeShutdown(JSC::ExecState*, JSC::Exception*, bool)
2 0x108119784 -[TNSRuntime executeModule:referredBy:]
3 0x1079cad33 主要
4 0x7fff5227ec25 开始
5 0x1
JavaScript 堆栈跟踪:
../node_modules/pbkdf2/lib/default-encoding.js(文件:node_modules/pbkdf2/lib/default-encoding.js:3:11)
在 __webpack_require__(文件:src/webpack/bootstrap:750:0)
在 fn(文件:src/webpack/bootstrap:120:0)
在../node_modules/pbkdf2/lib/sync.js(文件:node_modules/pbkdf2/lib/sync.js:14:30)
在 __webpack_require__(文件:src/webpack/bootstrap:750:0)
在 fn(文件:src/webpack/bootstrap:120:0)
在 ../node_modules/pbkdf2/index.js(文件:node_modules/pbkdf2/index.js:24:31)
在 __webpack_require__(文件:src/webpack/bootstrap:750:0)
在 fn(文件:src/webpack/bootstrap:120:0)
在 ../node_modules/crypto-browserify/index.js(文件:node_modules/crypto-browserify/index.js:14:16)
在 __webpack_require__(文件:src/webpack/bootstrap:750:0)
在 fn(文件:src/webpack/bootstrap:120:0)
在 ../node_modules/typeorm/browser/util/StringUtils.js(文件:node_modules/typeorm/browser/util/StringUtils.js:1:0)
在 __webpack_require__(文件:src/webpack/bootstrap:750:0)
在 fn(文件:src/webpack/bootstrap:120:0)
在../node_modules/typeorm/browser/naming-strategy/DefaultNamingStrategy.js(文件:node_modules/typeorm/browser/naming-strategy/DefaultNamingStrategy.js:1:0)
在 __webpack_require__(文件:src/webpack/bootstrap:750:0)
在 fn(文件:
JavaScript 错误:
文件:node_modules/pbkdf2/lib/default-encoding.js:3:11: JS ERROR TypeError: undefined is not an object (evalating 'global.process.browser')
(CoreFoundation)***由于未捕获的异常而终止应用程序'NativeScript遇到致命错误:TypeError:未定义不是对象(评估'global.process.browser')
在
../node_modules/pbkdf2/lib/default-encoding.js(文件:node_modules/pbkdf2/lib/default-encoding.js:3:11)
在 __webpack_require__(文件:src/webpack/bootstrap:750:0)
在 fn(文件:src/webpack/bootstrap:120:0)
在../node_modules/pbkdf2/lib/sync.js(文件:node_modules/pbkdf2/lib/sync.js:14:30)
在 __webpack_require__(文件:src/webpack/bootstrap:750:0)
在 fn(文件:src/webpack/bootstrap:120:0)
在 ../node_modules/pbkdf2/index.js(文件:node_modules/pbkdf2/index.js:24:31)
在 __webpack_require__(文件:src/webpack/bootstrap:750:0)
在 fn(文件:src/webpack/bootstrap:120:0)
在 ../node_modules/crypto-browserify/index.js(文件:node_modules/crypto-browserify/index.js:14:16)
在 __webpack_require__(文件:src/webpack/bootstrap:750:0)
在 fn(文件:src/webpack/bootstrap:120:0)
在 ../node_modules/typeorm/browser/util/StringUtils.js(文件:node_modules/typeorm/browser/util/StringUtils.js:1:0)
在 __webpack_require__(文件:src/webpack/bootstrap:750:0)
在 fn(文件:src/webpack/bootstrap:120:0)
在 ../
NativeScript 捕捉到信号 6。
本机堆栈:
1 0x1081183e1 sig_handler(int)
2 0x7fff5245b42d _sigtramp
3 0x1
4 0x7fff5234ba5c 中止
5 0x7fff502497f8 __cxa_bad_cast
6 0x7fff502499c7 拆解_unexpected_handler()
7 0x7fff513fbd7c _objc_terminate()
8 0x7fff50256e97 标准::__终止(无效(*)())
9 0x7fff502568fe __cxa_get_exception_ptr
10 0x7fff502568c5 __cxxabiv1::exception_cleanup_func(_Unwind_Reason_Code,_Unwind_Exception*)
11 0x7fff513fbc44 _objc_exception_destructor(无效*)
12 0x1080c7d4f NativeScript::reportFatalErrorBeforeShutdown(JSC::ExecState*, JSC::Exception*, bool)
13 0x108119784 -[TNSRuntime executeModule:referredBy:]
14 0x1079cad33 主要
15 0x7fff5227ec25 开始
16 0x1
JS 堆栈:
【问题讨论】:
您使用的是哪个版本的 N?我不确定为什么它会在类型设置为 nativescript 时尝试获取反应本机驱动程序。你能分享一个可以重现问题的示例项目吗? 我使用的是 Nativescript 6.4。链接到项目github.com/compishe/typeORMTest.git 由于您的依赖项存在各种错误,我无法运行您的项目,看起来在您运行迁移时出现了问题。 【参考方案1】:我发现了类似的问题,请检查您的webpack
配置。
也许对你有帮助,见link
【讨论】:
以上是关于NativeScript Angular 与 TypeORM的主要内容,如果未能解决你的问题,请参考以下文章
如何将 NativeScript 与 Angular CLI 集成
NativeScript + Angular:如何安装和使用图标?
在 Nativescript 代码共享项目中使用 Angular 库
NativeScript/Angular - 如何导入全局样式?
如何让 Jest 正确转换 node_modules/@nativescript/core? Jest + NativeScript + Angular + Nx