Angularjs 使用Angular js、Node js、express js和Mongo DB更新表单值

Angularjs 使用Angular js、Node js、express js和Mongo DB更新表单值,angularjs,node.js,mongodb,express,Angularjs,Node.js,Mongodb,Express,我是一个全新的人,在这个演示项目中,我可以使用Nodejs、Express、Angular js和Mongo DB执行基本的CRUD活动,但在更新过程中会遇到问题 我不知道如何使用单击调用Mongo DB update查询。我可以从Mongo DB获取数据,如下面的屏幕截图所示 但如果用户对值进行任何更改并按submit,我想更新这些值。我正在使用ng click进行更新 我在过去的两天里一直在尝试,但没有找到任何解决方案,我检查了几个例子,但发现它们有不同的方法 任何帮助都将不胜感激 Html

我是一个全新的人,在这个演示项目中,我可以使用Nodejs、Express、Angular js和Mongo DB执行基本的CRUD活动,但在更新过程中会遇到问题

我不知道如何使用单击调用Mongo DB update查询。我可以从Mongo DB获取数据,如下面的屏幕截图所示

但如果用户对值进行任何更改并按submit,我想更新这些值。我正在使用ng click进行更新

我在过去的两天里一直在尝试,但没有找到任何解决方案,我检查了几个例子,但发现它们有不同的方法

任何帮助都将不胜感激

Html视图:

HTML视图代码:

    <table cellspacing="0" cellpadding="0" border="0" id="id-form" ng-app="app-setting" ng-controller="SettingController" >
    <tbody><tr>

        <th valign="top">Facebook Link:</th>
        <td><input type="text" class="inp-form" ng-model="settings.facebook"></td>
        <td></td>
    </tr>
    <tr>
        <th valign="top">Twitter Link:</th>
        <td><input type="text" class="inp-form" ng-model="settings.twitter"></td>

    </tr>


    <tr>
        <th valign="top">Google+:</th>
        <td><input type="text" class="inp-form" ng-model="settings.googleplus"></td>
        <td></td>
    </tr>

        <tr>
        <th valign="top">Youtube:</th>
        <td><input type="text" class="inp-form"  ng-model="settings.youtube"></td>
        <td></td>
    </tr>

            <tr>
        <th valign="top">Email:</th>
        <td><input type="text" class="inp-form" ng-model="settings.email"></td>
        <td></td>
    </tr>

            <tr>
        <th valign="top">Contact #:</th>
        <td><input type="text" class="inp-form" ng-model="settings.contactnumber"></td>
        <td></td>
    </tr>




<tr>
    <th>&nbsp;</th>
    <td valign="top">
        <input type="submit" class="form-submit" value="update" ng-click="update(settings)">

    </td>
    <td></td>
</tr>
</tbody></table>
<!-- end id-form  -->
路线:

 var Setting = require('../models/setting').Setting;

 router.put('/admin/setting/:id', function(req, res, next) {
 Setting.findAndModify(req.params.id,req.body, function (err, post)  {
 if (err) return next(err);
  user:res.json(post);
 });
}))

型号:

     var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var adminService = new Schema({
  facebook: String,
  youtube: String,
  googleplus:  String,
  twitter:String,
  email:String,
  contactnumber:String,
  created: {type: Date, default: Date.now}
});

var Setting = mongoose.model('Setting', adminService);

module.exports = {
  Setting : Setting
};

嗯,您的HTML调用update方法并将settings对象传递给它,这在angular controller中看起来很正常

通过查看node.js代码,您需要调用

settingController中的$http.put('/admin/setting/:id',..)

参考: $http

您需要了解http方法

感谢您的回复,您能否确认我如何将表单值与id一起传递,以便在我的路由中进行处理,我已经编写了“$scope.update=function(user){var id=user.\u id;$http.put('/admin/setting/:'+id,user);};”但是它不起作用//对于id,您需要有一些唯一的字段,或者尝试在客户端生成一个唯一的键,或者mongo提供一个默认的文档id。但是在您的情况下,您可以使用contact num作为唯一的`$scope.update=function(data){$http.post('/admin/setting/:'+data.contactnumber,data,config)。然后(successCallback,errorCallback);};是的,我写了这个
$scope.update=function(data){var id=data.\u id;$http.put('/admin/setting/:'+id,data);}
但它不起作用,你能不能建议我正确地传递了id和表单数据,或者遗漏了什么?嘿,你的数据只是来自html的设置json,我看不到设置有一个_id键,所以你错了,试试console.log(id);你是一个投反对票的人吗?:561B61E96ABD5C1A11011E8BB必须是561B61E96ABD5C1A11011E8BB,不需要冒号,请查看示例代码u需要app.put()而不是app.use()
     var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var adminService = new Schema({
  facebook: String,
  youtube: String,
  googleplus:  String,
  twitter:String,
  email:String,
  contactnumber:String,
  created: {type: Date, default: Date.now}
});

var Setting = mongoose.model('Setting', adminService);

module.exports = {
  Setting : Setting
};