Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回未定义的get请求_Javascript_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Javascript 返回未定义的get请求

Javascript 返回未定义的get请求,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我一直在做一个项目的网址缩短,我得到了一个未定义的结果,以获得请求。 结果我也得到了一张空白页,但据我所知,一切正常,我不知道是什么错误 这是我的代码(请查看app.get部分) 我检查了我的数据库是否输入了模式数据,它正在进入数据库,因此我认为检索会产生问题。您的环境变量是否正常工作?我注意到您没有使用dotenv模块或类似模块来配置进程。envmongoose.model.prototype.find返回找到的对象的数组。如果您在控制台的某个地方键入Array.prototype.name,

我一直在做一个项目的网址缩短,我得到了一个未定义的结果,以获得请求。 结果我也得到了一张空白页,但据我所知,一切正常,我不知道是什么错误 这是我的代码(请查看app.get部分)


我检查了我的数据库是否输入了模式数据,它正在进入数据库,因此我认为检索会产生问题。

您的环境变量是否正常工作?我注意到您没有使用
dotenv
模块或类似模块来配置
进程。env

mongoose.model.prototype.find
返回找到的对象的数组。如果您在控制台的某个地方键入
Array.prototype.name
,您将得到
未定义的
。相反,使用
mongoose.model.prototype.findOne

SaveData.find({url:1})
将为您提供url值为1的资源。您确定存在此类资源吗?还要打印err和数据,并查看输出结果。数据为空或存在错误。如果使用“查找筛选器”未找到匹配的文档,则数据中会出现null。当您执行
console.log(data)
操作时,您会看到什么?您始终可以先自己进行一些调试:1)始终查找您正在使用的命令,以查看它的实际功能。2)
console.log
一切;仔细检查变量是否包含您认为它们包含的内容。记录
数据
而不是
数据。name
会立即解决这个问题。这是一个注释,不是答案。(同样,如果mongodb连接不工作,程序甚至在响应客户端请求之前就会崩溃)
'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 ...');
});