2015-01-08 2 views
0

Я хочу получить доступ к переменной «содержимое» на стороне клиента со стороны сервера, как бы я это сделал?Как получить доступ к переменной javascript на стороне клиента на стороне сервера nodejs?

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 editor=ace.edit("editor"); 
      editor.setTheme("ace/theme/monokai"); 
      editor.getSession().setMode("ace/mode/java"); 
      function getText(){ 
       event.preventDefault(); 
       var content = editor.getValue(); 
       return false; 
      } 
    form(name="Save", id = "save", onsubmit="getText()") 
     input(type="submit", value="Save") 
+0

Отправляя его в форме или используя ajax/websockets. –

ответ

0

Это зависит от того, какой протокол вы хотите использовать для своего приложения.

Если вы используете классический http и запускаете экспресс (http) сервер в узле, вы должны следовать чему-то, как описано в this post. Ваш клиент отправляет HTTP-сообщение на сервер, например, вы можете получить доступ к переменной из html-формы. В чистом HTML форма выглядит примерно так:

<form action="/save" method="post"> 
<input id="save" type="text" /> 
<input type="submit" value="Save" /> 
</form> 

URL, вы бы поймать на стороне сервера с помощью экспресс-бы http://your-page.com/save

app.post('/save', function(req, res) { ... 

Вы можете также использовать «современный» WebSocket protocol, где клиент и сервер может «говорить немного более естественно друг с другом», но также является совершенно новым и не всегда легко интегрироваться с существующим http-инфраструктурой. Для websocket вы можете использовать модуль: socket.io для узла, также в сочетании с экспресс-сервером http.

Тогда это будет выглядеть как-то вроде этого:

var express = require('express'), 
    app = express(), 
    server = require('http').Server(app), 
    // Implementation of the WebSocket protocol. 
    io = require('socket.io')(server); 
server.listen(3000); // port your server is listening, test with localhost:3000 

io.on('connection', function (socket) { 
    socket.on('save', function (content) { 
    // do something with your content variable 
    }); 
}); 

А на стороне клиента (с помощью Jquery):

var socket = io(); 
$('#save').click(function() { 
    socket.emit('save', content); 
}); 

Если вы решили использовать WebSocket, я рекомендовал бы вам посмотреть при этом легко chat implementation.

Смежные вопросы