小编Eli*_*mar的帖子

使用MongoClient v3.0时,db.collection不是函数

我一直在使用MongoDB在nodeJS上尝试W3schools教程.

当我尝试在nodeJS环境中实现此示例并使用AJAX调用调用该函数时,我收到以下错误:

TypeError: db.collection is not a function
    at c:\Users\user\Desktop\Web Project\WebService.JS:79:14
    at args.push (c:\Users\user\node_modules\mongodb\lib\utils.js:431:72)
    at c:\Users\user\node_modules\mongodb\lib\mongo_client.js:254:5
    at connectCallback (c:\Users\user\node_modules\mongodb\lib\mongo_client.js:933:5)
    at c:\Users\user\node_modules\mongodb\lib\mongo_client.js:794:11
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickCallback (internal/process/next_tick.js:104:9)
Run Code Online (Sandbox Code Playgroud)

请在下面找到我实现的代码:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mytestingdb";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  db.collection("customers").findOne({}, function(err, result) {
    if (err) throw err;
    console.log(result.name);
    db.close();
  });
});
Run Code Online (Sandbox Code Playgroud)

请注意,只要执行命中,就会发生错误:

db.collection("customers").findOne({}, function(err, result) {}
Run Code Online (Sandbox Code Playgroud)

另外,请注意(如果重要的话)我已经为节点JS安装了最新的MongoDB软件包(npm install mongodb),而MongoDB版本是MongoDB Enterprise 3.4.4,使用MongoDB Node.js驱动程序v3.0.0-rc0.

mongodb node.js

117
推荐指数
9
解决办法
8万
查看次数

无法在 Go 调试器中调用函数

我正在关注 Karl Seguin 的“小围棋书”,以学习围棋。

我的工作环境是 Visual Studio Code。

在调试时,当我尝试从调试控制台调用一个函数时,我收到以下错误:“函数调用不允许不使用 'call'”,如果我尝试使用“call fib(10)”,我得到“无法eval 表达式:“1:6:预期的‘EOF’,发现 fib”。这是我试图评估的函数:

//Fibonnaci
func fib(n int) int64 {
    if n == 0 {
        return 0
    } else if n == 1 {
        return 1
    } else {
        return fib(n-1) + fib(n-2)
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试从代码本身调用该函数(例如从 main() 调用,它可以完美运行)。

但是,如果我设置断点并尝试从调试器控制台调用相同的函数,则会出现以下错误:

Eval error: function calls not allowed without using 'call'
call fib(10)
Unable to eval expression: "1:6: expected 'EOF', found fib"
Failed to eval expression:  {
 "Expr": "call fib(10)",
 "Scope": {
  "goroutineID": 1, …
Run Code Online (Sandbox Code Playgroud)

go visual-studio-code delve

6
推荐指数
1
解决办法
1947
查看次数

在 Axios 中增加 maxContentLength 和 maxBodyLength

我正在使用“Axios”来调用将文件信息和内容作为参数的 WCF 方法。该文件作为 base64 编码字符串被读取和发送。我的问题是,当文件大小超过某个限制时,AXIOS 会抛出异常:“错误:请求正文大于 maxBodyLength 限制”。我查了一下问题,发现所有解决方案都建议增加 AXIOS 配置对象中的 maxContentLength / maxBodyLength 参数,但没有成功。在 node.js 中找到以下已实现的测试用例:

    var axios = require('axios');
    var fs = require('fs');
    var path = require('path')
    var util = require('util')
    let readfile = util.promisify(fs.readFile)

    async function sendData(url,data) {
        let params = data
    
        let resp = await axios({
            method: 'post',
            url: url,
            data: JSON.stringify(params),
            headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }
            // maxContentLength: 100000000,
            // maxBodyLength: 1000000000
        }).catch(err => {
            throw err;
        })
        return resp;
      }
    async function ReadFile(filepath) …
Run Code Online (Sandbox Code Playgroud)

javascript ajax node.js axios

5
推荐指数
1
解决办法
2万
查看次数

未知运算符:$ and在MongoDB中

我正在通过node.js代码查询mongodb。我的mongo文档集合(患者集合)具有以下结构:+

Patient collection

{ 
    "_id" : ObjectId("59e5c28f37ce021e142e7ead"), 
    "MRN" : "00126389", 
    "Family_Name" : "Jones", 
    "First_Name" : "Lydia", 
    "Father_Name" : "Bob", 
    "Maiden_Name" : "", 
    "Mother_Name" : "n/a", 
    "Spouse_Name" : "", 
    "Address" : "", 
    "Telephone_Nbr" : "", 
    "Patient_Visit" : {
        "Department" : "ER", 
        "Hospital_Status" : "Active", 
        "Case_Nbr" : "17", 
        "Admission_Date" : "01/04/2011 12:00:00 AM", 
        "Admission_Time" : "14:02"

    }
}
Run Code Online (Sandbox Code Playgroud)

我的查询执行代码如下所示:

mongoClient.connect(mongoConstr, function(err, db) {
    if (err) throw err;
    var query = {
        $and: [{
            "Patient_Visit.Department": "ER"
        }, {
            $or: [{
                "Patient_Visit.Hospital_Status": "Active Left" …
Run Code Online (Sandbox Code Playgroud)

javascript mongodb node.js

4
推荐指数
1
解决办法
3849
查看次数

MongoDB:Collection.Find() 是否支持承诺

我试图改造一个旧的 Nodejs Web 服务,用链式承诺替换回调函数。在查询 mongodb 时,我们使用以下语法遍历结果集。

collection.find(filter).toArray(function(err, items) {
          if (err) {
            throw(err);
          } else {
            console.log(items);

          }       
Run Code Online (Sandbox Code Playgroud)

如果我尝试.toArray()用 a替换该部分,.then()则会出现以下错误“col.find(...).then is not a function”。

如果我替换.find().findOne().then(),则代码完美运行。

任何帮助表示赞赏。

mongodb node.js

2
推荐指数
1
解决办法
3086
查看次数

JavaScript 中动态生成十六进制编码数据

下面的序列是蓝牙打印机的转义序列,以便打印机知道该序列后面的字符串应该编码成二维码。

[27, 90, 0, 2, 7, 23, 0]
Run Code Online (Sandbox Code Playgroud)

该序列应以十六进制字符串格式编码:

let str = ''
str = str + "\x1b" + "\x5a" + "\x00" + "\x02" + "\x07" + "\x17" + "\x00"
Run Code Online (Sandbox Code Playgroud)

其中每个“\xab”值是序列中出现的每个数字的十六进制表示。

“23”(十六进制的“17”)值是应编码到 QR 中的文本的长度,因此,其值是动态的,因此其十六进制值应动态连接到“str”。

使用字符串连接:

 str = ...etc... + "\x07" + "\x" + generateHex("23") (generateHex converts decimal value to Hex) 
Run Code Online (Sandbox Code Playgroud)

导致错误,因为“\x”需要附加一个十六进制数字。

使用双反斜杠转义“\x”也不起作用(它没有被解释为有效的十六进制值)。

感谢您的帮助。

javascript

0
推荐指数
1
解决办法
62
查看次数

标签 统计

node.js ×4

javascript ×3

mongodb ×3

ajax ×1

axios ×1

delve ×1

go ×1

visual-studio-code ×1