2016-06-22 11 views
0

フォームでユーザー入力を使用してjsonファイルに新しいユーザーを追加したい 以下のコードを使用して情報をtxtファイルにアップロードできますが、JQueryを使用してAJAX呼び出しnodejを実行する

<!DOCTYPE html> 
<html> 
<head> 
<title> users </title> 
</head> 

<body> 
    <h1>Users</h1> 
    <% include templates/header.ejs %> 

    <form action="http://127.0.0.1:3000/users" id="new" method="post" enctype='application/json'> 
    <div id="form"> 
     <label for="lname">Last Name</label> <input type="text" id="lname" name="lname"> 

     <label for="fname">First Name</label><input type="text"id="fname"name="fname"> 

     <label for="id">ID</label><input type="text"id="id"name="id"> 

     <button type="submit" id= "submit" value="Submit" >Submit</button> 

</form> 

</body> 
</html> 

user.jsファイル:この使用してJSONを行う方法がわからない、任意のヘルプはあなたに

EJSファイルを感謝

var express = require('express'); 
var router = express.Router(); 
var fs = require("fs"); 

router.get('/', function(req, res, next) { 
    res.render('users'); 
}); 


//will send the user input 
router.post('/', function(req, res) { 

    var first= req.body.fname; 
    var last= req.body.lname; 
    var id= req.body.id; 

    filePath = __dirname + '/people.txt'; 
    fs.appendFile(filePath, JSON.stringify(first + " " + last + " "+ id), function() { 
    res.end(); 
    }); 

}); 

router.get('/listUsers', function (req, res) { 
    fs.readFile(__dirname + "/" + "users.json", 'utf8', function (err, data) { 

    console.log(data); 
    res.end(data); 
    }); 
}) 

module.exports = router; 
+0

:これを行うためには、あなたのような何かを行うことができますか? –

+0

サイドノート、あなたはあなたの 'div'を閉じなかった。 – nateyolles

答えて

1
私が何をしたファイルを使用しないことをお勧めします

この。しかし、あなたが主張すれば、データをいつも標準のJSON形式で保存することができます。あなたはファイルでJSON文書を書きたい

var express = require('express'); 
var router = express.Router(); 
var fs = require("fs"); 

router.get('/', function(req, res, next) { 
res.render('users'); 
}); 


//will send the user input 
router.post('/', function(req, res) { 

    var first= req.body.fname; 
    var last= req.body.lname; 
    var id= req.body.id; 

    var person = { 
    first: first, 
    last: last, 
    id: id 
    }; // if you are using es6 you do var person = {first, last, id} 

    var filePath = __dirname + '/people.json'; 
    fs.readFile(filePath, function (err, file) { 
    if (err) { 
     res.status = 500; 
     res.send(err).end(); 
     return; 
    } 

    var fileString = file.toString(); 
    var people = fileString ? JSON.parse(fileString) : []; 
    people.push(person); 
    fs.writeFile(filePath, JSON.stringify(people), function(err) { 
     if (err) { 
     res.status = 500; 
     res.send(err).end(); 
     return; 
     } 

     res.end(); 
    }); 
    }); 
}); 



router.get('/listUsers', function (req, res) { 
    fs.readFile(__dirname + "/" + "users.json", 'utf8', function (err, data) { 
    if (err) { 
     res.status = 500; 
     res.send(err).end(); 
     return; 
    } 
    res.json(JSON.parse(data)); 
    }); 
}) 



module.exports = router; 
+0

これは完全にあなたに感謝しました! – StinkyTotoro

関連する問題