【发布时间】:2020-10-29 12:08:55
【问题描述】:
我一直在做一个 URL 缩短项目,我得到一个未定义的结果来获取请求。 结果我也得到了一个空白页,但据我所知,一切都很好,我不知道是什么错误 这是我的代码(请查看 app.get 部分)
'use strict';
var bodyParser = require('body-parser')
var express = require('express');
var mongo = require('mongodb');
var mongoose = require('mongoose');
var http = require("http");
var cors = require('cors');
const dns = require('dns');
var app = express();
// Basic Configuration
var port = process.env.PORT || 3000;
/** this project needs a db !! **/
// mongoose.connect(process.env.DB_URI);
app.use(cors());
/** this project needs to parse POST bodies **/
// you should mount the body-parser here
app.use('/public', express.static(process.cwd() + '/public'));
app.get('/', function(req, res){
res.sendFile(process.cwd() + '/views/index.html');
});
// your first API endpoint...
app.get("/api/hello", function (req, res) {
res.json({greeting: 'hello API'});
});
mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true });
var saveSchema = new mongoose.Schema({
name: String,
url: Number,
});
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
/** 3) Create and Save a Person */
var SaveData = mongoose.model('Save', saveSchema);
//**Here's the start of my problem,i think**
app.get("/api/shorturl/:id1",function(req,res){
SaveData.find({url:1},function(err,data){ console.log(data.name)//**i am getting undefined for this in console**
res.json(data.name);})
});
app.post("/api/shorturl/new",(req,res)=>{
var body=req.body.url;
dns.lookup(body,(err,data)=>{
var new2= new SaveData({name:body,url:1});
new2.save((err,data)=>{res.json(new2);});
})
});
app.listen(port, function () {
console.log('Node.js listening ...');
});
我检查了我的数据库是否输入了模式数据,它正在进入数据库中,所以我认为检索是个问题。
【问题讨论】:
-
SaveData.find({url:1})将为您提供 URL 值为 1 的资源。您确定存在这种类型的资源吗?也打印错误和数据,看看输出是什么。数据为空或有错误。如果使用 find 过滤器没有找到匹配的文档,您将在 data 中得到 null -
改用
console.log(data)会看到什么? -
你总是可以先自己做一些调试:1) 总是查看你正在使用的命令,看看它实际上做了什么。 2)
console.log一切;仔细检查变量是否包含您假设它们包含的内容。记录data而不是data.name会立即解决这个问题
标签: javascript node.js mongodb express mongoose