如何在安卓端运行nodejs的sqlite3模块

问题描述

想在安卓端运行nodejs写的web服务器。目前遇到的问题是sqlite3模块的安装问题。
请问大佬们如何运行起来?
sqlite3官方给的一个解决方法是将sqlite3作为nodejs的一个核心插件,与nodejs一起交叉编译。但……恕咱弱鸡不知如何操作。

问题出现的平台版本及自己尝试过哪些方法

有尝试过sqlite3和better-sqlite3,但皆以失败告终。运行都出现类似的段错误:

@localhost  ~/test  node main
[1]    4206 segmentation fault (core dumped)  node main

运行环境:NeoTerm(一个基于Termux的终端 大概)
装有nodejs、sqlite、libsqlite、libsqlite-dev、cmake、make、clang(替代gcc)和python2.7
图片描述

相关代码

npm install sqlite3 --build-from-source --sqlite=~/../usr/bin/sqlite3
npm install better-sqlite3 --sqlite=./sqlite-amalgamation

其中sqlite-amalgamation文件夹里面的代码是在官网(https://www.sqlite.org/downlo...)下载的sqlite-amalgamation-3270200.zip解压出来的(https://www.sqlite.org/2019/s...

测试用的js:

const sqlite = require("sqlite3");
// const sqlite = require("better-sqlite3");
console.log(sqlite);

其他思路

因为只是用作数据库,若是大佬们有什么可以替代用的数据库也可以推荐(win和android上都可以方便使用的,Android是到时候演示的时候方便演示)
ps: 听说也有用docker编译出来arm64可用的sqlite库,但咱目前还是一脸懵逼的状态。。。

参考

https://github.com/JoshuaWise...
https://github.com/mapbox/nod...
https://github.com/mapbox/nod...

阅读 4.7k
1 个回答

数据量不大可以考虑NEDB

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏