Sails.js数据未定义

时间:2017-12-08 07:52:30

标签: javascript sails.js ejs

我尝试使用sails.js创建名为Edit函数和更新函数的函数来更新数据库中的项目但是它的长度不能读取未定义的属性。我有点卡在这里,请帮忙。

This is a picture of Edit and Update functions

This is an error result that I got when I click on Edit button



<!DOCTYPE html>
<html>
	<head>
	<title>Edit Item | Make4You</title>
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css">
	<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js"></script>
	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js"></script>
	</head>
	
	
	<body>
	
	<h1 class="">Edit Item</h1>
	<form method="post" action="/item/update?id=<%= items.id %>">	
		<div class="form-group">
			<label for="title">Title</label>
			<input type="text" name="title" class="form-control" value="<%= items.title %>">
			<label for="category_id">Category</label>
			<select name="category_id">
			<% for (var j=0; j<categories.length; j++){ %>
			<option value="<% if(items[i].category_id == categories[j].id){ %>"><%= categories[j].name %></option>
			<% } %>
			<% } %>
			</select>
			<label for="description">Description</label>
			<input type="text" name="description" class="form-control" value="<%= items.description %>">
			<label for="width">Width</label>
			<input type="text" name="width" class="form-control" value="<%= items.width %>">
			<label for="height">Height</label>
			<input type="text" name="height" class="form-control" value="<%= items.height %>">
			<label for="price">Price</label>
			<input type="price" name="price" class="form-control" value="<%= items.price %>">

		</div>

		
		<input type="submit" value="submit">
	</form>
	</body>
</html>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

在您的修改方法中,您似乎尝试使用相同的ID(Item)同时获取Categoryreq.param('id') ...您可能意味着要么通过在两个不同的ID中,或使用附加到提取的Item或类似内容的类别ID ...

此外,findfindOne之间存在一些混淆。 find将始终返回一个结果数组,可能为空。 findOne会在找到时返回单个对象,如果不是,则返回undefined

Category.find({id: category_id}).exec(function(err, results) {
    // results is an array, possibly empty
});

Category.findOne({id: category_id}).exec(function(err, results) {
    // results is either a model or undefined
});

从您的视图返回的错误,看起来可能你想要数组。请记住,检查空结果(undefined或零长度数组)是查看err参数的一个令人不快的检查 - 空结果不是错误。