database name is test1 and collection name is feedbacks
this is app.js
I'm unable to get mongodb data in my html form field data is being inserted but i want to get intial values in my form help me out with this.since i am new to this i would like to have a simple explicit solution.
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var mongodb = require('mongodb');
var dbConn = mongodb.MongoClient.connect('mongodb://localhost:27017/test1');
var app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.resolve(__dirname, 'public')));
app.get('/retrieve', function(req, res){
post.find({}, function(err, feedbacks){
if(err) res.json(err);
else res.render('retrieve', {posts: feedbacks});
});
});
app.post('/post-feedback', function (req, res) {
dbConn.then(function(db) {
delete req.body._id; // for safety reasons
var dd = db.db("test1");
dd.collection('feedbacks').insertOne(req.body);
});
res.send('Data received:\n' + JSON.stringify(req.body));
});
app.get('/view-feedbacks', function(req, res) {
dbConn.then(function(db) {
var dd=db.db("test1");
dd.collection('feedbacks').find({"Name":"shubham"}).toArray().then(function(feedbacks) {
res.status(200).json(feedbacks);
});
});
});
app.get('/view-sahil', function(req, res) {
dbConn.then(function(db) {
var dd=db.db("test1");
dd.collection('feedbacks').insertOne({"name":"sahil","E-mail":"sahil@vibhuti.guru","comment":"jhdsfji"},function(feedbacks) {
res.status(200).json("Data inserted");
});
});
});
app.listen(process.env.PORT || 3000, process.env.IP || '0.0.0.0' );
this is my index.html
<!doctype html>
<html lang="en">
<head>
<script src="..app.js"></script>
<meta charset="UTF-8">
<title>mongodb</title>
</head>
<body>
<h1>Please fill data in the form below:</h1>
<form method="POST" action="/">
<label>Name:<input type="text" name="" value= feedbacks.name required></label>
<br>
<label>Email:<input type="text" name="Email" value="" required></label>
<br>
<label>Comment:<br><textarea name="comment"></textarea></label>
<br>
<input type="submit" value="Submit">
</form>
<a href="/view-feedbacks">View Records</a>
<a href="/view-sahil">insert dummy record </a>
</body>
</html>
You can call API from angularjs like this
var testApp = angular.module('testApp', []);
testApp.controller('testController' , function ($scope, $http) {
$scope.getRequest = function () {
console.log("I've been pressed!");
$http.get("http://localhost/view-feedbacks")
.then(function successCallback(response){
$scope.response = response;
// Print this value in html
}, function errorCallback(response){
console.log("Unable to perform get request");
});
};
});
with jQuery, you can do like this
$.ajax({
type: "GET",
url: "http://localhost/view-feedbacks",
dataType: "json",
success: function(resp){
console.log("resp", resp);
},
error: function(e){
alert('error', e);
}
});
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.