主要试用了两个库:mongodb、mongoose
由于服务器使用的是比较老版本的mongodb,如果使用比较新的客户端,编译时会出现问题:
Server at xxxx:27017 reports maximum wire version 4, but this version of the Node.js Driver requires at least 6 (MongoDB 3.6)
终级解决方案:去掉类型
const mongodb = require('mongodb');
const MongoClient = mongodb.MongoClient;
@types/mongodb 在package.json中去掉了,yarn install不会自动 删除,得手工删除了 rm -rf node_modules/@types/mongodb。 再./build.sh 才能成功……
mongoose
使用 5.13.17版本的mongoose搭配 typescript时,使用ts-node能直接运行成功。但是使用 tsc 进行编译时,出现各种问题……
原因可能是:当时不是原生支持typescript,类型定义不支持高版本的typescript?
废弃,使用mongodb重写
mongodb
import { MongoClient } from 'mongodb';
// or as an es module:
// import { MongoClient } from 'mongodb'
// Connection URL
const url = 'mongodb://xxxx:27017/xxx';
const client = new MongoClient(url, {
useNewUrlParser: true,
useUnifiedTopology: true,
auth: {
user: 'xxx',
password: 'xxx'
}
// useFindAndModify: true
// useCreateIndex: true
});
// Database Name
const dbName = 'xxx';
async function main() {
// Use connect method to connect to the server
await client.connect();
console.log('Connected successfully to server');
const db = client.db(dbName);
const collection = await db.collection('deviceInfo').estimatedDocumentCount();
console.log(collection);
// the following code examples can be pasted here...
return 'done.';
}
main()
.then(console.log)
.catch(console.error)
.finally(() => client.close());