0

私のプロジェクトの目標は、ユーザーがデータベースの内容を確認し、その内容を更新できるチェックリストのような Web アプリを作成することです。

データベースはシンプルです。好きなものを並べるだけ。例: {"お気に入り":"パイ"},{"お気に入り":"キティ"}

これまでのところ、データベース (MongoHQ) に接続してデータの 1 つの要素を表示する方法を理解しました。私は何時間も試みてきましたが、私は困惑しています:

  1. データベースにあるデータを書き込むためのhtmlファイルを取得します。
  2. データベースに書き込む Post フォームを作成します。

いくつかの洞察を共有してください!

これが私のコードです。

.html

<!DOCTYPE html>
<html>
<head>
</head>
<body>
  <div>

  <h1>Notepad</h1>
  <p>Favorite things: {{favorite}}</p>
<!--  {% for favorite in doc %}                  <-this doesn't work!
  <p>Favorite things: {{favorite}}</p>
  {% endfor %}
-->  
  </div>
</body>

</html>

web.js

var express = require('express');
var path = require('path');
var fs = require('fs');
var http = require('http');
var mongo = require('mongodb');
var MongoClient = mongo.MongoClient;
var Server = require('mongodb').Server;
var mongoUri = "mongodb://id:pass@ds------.mongolab.com:-----/heroku_app------";
var cons = require('consolidate');
var app = express(express.logger());

app.engine('html', cons.swig);
app.set('view engine', 'html');
app.set('views', __dirname + '/views');
app.set('port', process.env.Port || 8080);
app.use(express.bodyParser());

var mydatabase = null;
var myCollection = null;

MongoClient.connect(mongoUri, function(err, db){
    if(!err){
        console.log("We are connected to mongo_lab!");
    }
    mydatabase = db;
    mydatabase.createCollection('test2', function(err, collection){});

    myCollection = mydatabase.collection('favorites');
    //myCollection.insert({'favorite':'Blueberries'}, {w:1}, function(err, result){});
});

var mongoclient_server = new MongoClient(new Server('localhost', 27017));

function errorHandler(err, req, res, next){
    console.error(err.message);
    console.error(err.stack);
    res.status(500);
    res.send("Fix the dam Error!");
}
app.use(errorHandler);

app.get('/notepad', function(req, res, next){
    MongoClient.connect(mongoUri, function(err, db){
        mydatabase.collection("favorites").find().toArray(function(err, doc){
        if(err) throw err;
        console.log(doc);
            res.render('notepad', doc[0]);
        });
    });
});

var htmlfile = "index.html";
app.get('/', function(request, response) {
var html = fs.readFileSync(htmlfile).toString();
response.send(html);
});

var port = process.env.PORT || 8080;
app.listen(port, function() {
  console.log("Listening on " + port);
});
//mongoclient_server.open(function(err, mongoclient_server){   <--if I use this, heroku crashes
//    if(err) throw err;
//    app.listen(port);
//});
4

1 に答える 1