J'écris un petit serveur avec express, mongo et mongoose. Mon code:Mongoose Blank Query trouve tout, mais une requête spécifique échoue
const express = require('express');
const MongoClient = require('mongodb').MongoClient
const mongoose = require('mongoose');
const COLOURS = ["e6194b", "3cb44b", "ffe119", "0082c8", "f58231", "911eb4", "46f0f0", "d2f53c", "fabebe", "e6beff"];
var url = 'mongodb://localhost:27017/test';
mongoose.connect(url);
var app = express();
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
console.log('Database connected and open');
});
var deviceSchema = mongoose.Schema({
mac: String,
ip: String,
colourIndex: Number
});
var Device = mongoose.model('Device', deviceSchema);
app.get('/register', function (req, res) {
console.log("Registration: ");
console.log(" MAC: " + req.query.mac);
console.log(" IP : " + req.query.ip);
Device.find({ mac: /req.query.mac/ }, function(err, deviceList) {
if (err || deviceList.length == 0) {
console.log(" Cannot find " + req.query.mac + ": " + err);
Device.count({ mac: /req.query.mac/ }, function(err, count){
var index = count;
console.log("There are " + count + " matching");
var device = new Device({ mac: req.query.mac, ip: req.query.ip, colourIndex: index });
// device.save(function (err, device) {
// if (err) {
// res.status(500).send("Internal error");
// return console.error(err);
// }
// res.status(202).send(COLOURS[index]);
// });
res.status(202).send(COLOURS[0]);
});
} else {
console.log(deviceList);
res.status(202).send("Success");
console.log(" Colour index: %s", deviceList[0].colourIndex);
}
});
});
Lorsque je tente d'utiliser mac: /req.query.mac/
pour trouver l'appareil, il échoue CHAQUE temps. Si je le laisse vide, il renvoie les périphériques (j'ai ajouté des doublons pour vérifier avec le code commenté).
J'ai essayé de regarder le documentation et stack overflow
Bien que la réponse puisse correspondre, je pense que les gens dans ma position ne sauront même pas comment commencer à poser la question. –