我有一個文本區域,用戶在文本中輸入內容。一旦他們點擊保存,文本區域中的內容就會發送到服務器端。在服務器端,我想使用內容來創建一個文件。我有一個名爲「usercode」的變量,它保存文本區域的內容。我創建一個文件,如何使用nodejs中的用戶輸入創建文件?
fs.wirteFile(name + "java", usercode, function(){})
命名文件名,由用戶給出。這確實創建了一個文件,但文件中唯一的東西是「[object Object]」。
這裏是我使用的玉我的客戶端:
extends layout
block content
div(id="ineditortxt")
h1(name="headings") #{title}
a(href='/signout', class='text-center new-account') Sign Out
div(id="editor")
|public class #{title}{
| public static void main(String[] args) {
|
| }
|}
script(src="src/ace.js", type="text/javascript")
script(type="text/javascript").
//var myRequest = new XMLHttpRequest();
var editor=ace.edit("editor");
editor.setTheme("ace/theme/monokai");
editor.getSession().setMode("ace/mode/java");
$(document).ready(function(){
$("#save").click(function(event){
var content = editor.getValue();
$.ajax({
url:'/getcode',
type:'POST',
data: content,
jsonpCallback: 'callback'
});
event.preventDefault();
return false;
});
});
form(name="Save", id = "save")
input(type="submit", value="Save")
div(id="result")
|
這裏是服務器端的我並沒有包括所有的代碼,只是一個與此相關的問題:
var express = require('express');
var router = express();
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
var param = require('express-params');
var Parse = require('parse').Parse;
var http = require('http');
var fs = require('fs');
router.post('/editor', function(req, res){
name = req.body.newname;
res.render('Editor', {title: "" + name});
});
router.post('/getcode', function(req, res){
var usercode = req.body;
fs.writeFile(name + ".java", usercode, function(err){
if(err){
console.log(err);
} else{
console.log("The file is saved!");
}
})
res.send({code: "" + usercode});
console.log(usercode);
});
return router;
}
使用JSON.stringify(用戶代碼)? – JuniorCompressor 2015-02-08 15:26:22
這是有效的,除非用戶輸入:'System.out.println(「Hello World」);'然後文件保存爲:'{「System.out.println(\」Hello World \「);」: 「」}'。 – Suji 2015-02-08 15:36:46