【问题标题】:Nodejs api load data based on query string valueNodejs api根据查询字符串值加载数据
【发布时间】:2018-02-19 17:21:15
【问题描述】:

作为初学者,我正在使用 MEAN 堆栈技术构建一个简单的网站。我有一个基于 oject _id 获取测验数据对象的 api。一切正常。我想做的是,根据我的 url http://localhost:3000/viewQuiz?gpQ=59b2ac3cfc2283480879025c 中的查询字符串值,我希望 api 加载数据,而不是像下面显示的那样进行硬编码。我在这里所做的不同之处在于我为/viewQuiz 设置了路由,并且api url 是/api/getQuizData。因此,当我加载 http://localhost:3000/viewQuiz?gpQ=xxxxxx 时,我希望 api 能够获取正确的数据。请参阅下面的代码

服务器.js

//Routes
app.get('/startCampaign', function(req, res){
        res.sendFile(__dirname + '/public/views/start-campaign.html');
});

//Get data
var Quiz = mongoose.model('Quiz', quizSchema);
var ObjectId = require('mongodb').ObjectID;

app.get('/api/getQuizData', function(req, res){
    Quiz.find({_id:ObjectId("59b2ac3cfc2283480879025c")}, function(err, quiz) {
      if (err) throw err;

      // object of the user
      res.json(quiz[0]);
    });
});

角位..

//Get Quiz data
$scope.quizData = '';
$http.get('/api/getQuizData')
.success(function(data) {
    console.log(data);
  $scope.quizData = data;
})

然后我使用这个 AngularJs QuizData 绑定来显示数据。如何根据查询字符串值更改我的 server.js 文件以使其动态化?

【问题讨论】:

  • Quiz.find({_id:ObjectId(req.query.gpQ)}, function(err, quiz) {
  • @Keith 不幸的是这不起作用
  • console.log(req.query) 显示什么?

标签: javascript angularjs node.js mongodb mongoose


【解决方案1】:

角度试试这个 //req.query 包含 GPQ 值,它会根据您在 gpq="xyz......" 之后发送的内容动态变化

Quiz.findById(req.query.gPQ, function(err, quiz) {
  if (err) throw err;

  // object of the user
  res.json(quiz);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多