2013-12-05 1 views
1

Я пытаюсь заставить человека ввести какой-либо текст, а затем переместить эту переменную на серверную сторону и запустить, но функция, похоже, не проходит. (я бегу экспресс и упрек, как node.js библиотеки) Вот где HTML называется:Как произвести работу с сервером node.js в html

app.get('/', function (req, res){ 
    res.sendfile('./Homepage.html'); 
}); 

Вот где функция называется:

app.post('/form', function (req, res) { 
    hash1 = (req.body.textfield), 
    hash2 = (req.body.textfield2), 
    T.get('search/tweets', { 
     q: hash1 + ' since:2013-11-11', 
     count: 5 
    }, 

    function (err, reply) { 
     console.log(reply) 
    }) 
    res.console.log('done'); 
}); 

Вот HTML сторона JavaScript:

function testResults (form) 
{ 
    var Hashtag1 = form.hashtag1.value; 
    var Hashtag2 = form.hashtag2.value; 

    //store variables 
    localStorage.setItem('query3', localStorage.getItem('query2')); 
    localStorage.setItem('query2', localStorage.getItem('query1')); 
    localStorage.setItem('query1', Hashtag1 + ' #' + Hashtag2); 
    app.get('/results', function (req, res){ 
    res.sendfile('results.html'); 
    ); 
} 

А вот летний из HTML

<input type="text" name="hashtag1" value="" placeholder="#hashtag" class="format"> 
<center> 
    <input type="submit" name="submit" id="submit" value="Submit" onClick="testResults(this.form)"> 
</center> 
+4

Вы, кажется, очень смущены. Как вы могли запускать функцию в браузере, когда эта функция существует на сервере? Они не используют один и тот же код. –

+0

Как вы ожидаете, что 'app.get' будет работать на стороне клиента? – Brad

+0

Я использую экспресс, поэтому app.get является стандартным. – user2954467

ответ

1

Вы должны использовать запрос AJAX для отправки данных формы в конечную точку/форму. Проверьте функцию $ .post JQuery.

var data = {"parameter1":"value", "parameter2":"value"}; 
$.post("/form", data, function(response) { 
     alert("Response from server: " + response); 
}); 

У вас нет доступа к библиотекам или функциям node.js на стороне клиента.

app.get('/results', function (req, res){ 
res.sendfile('results.html'); 
); 

Не имеет смысла на стороне клиента, если вы не определили приложение, приложение и т. Д. В другом месте.

+0

У меня есть выражение и twit как node.js библиотеки. Забыл включить их. – user2954467

+0

«Вот html-сторона javascript:« То, что вы называете «HTML-стороной», чаще называют «Клиентская сторона». Этот javascript выполняется на устройстве пользователя и НЕ имеет доступа к узлам Node.js, express или любым другим узлам. Вы должны использовать HTTP api, который вы определили в узле с функциями XMLHTTPRequest или JQuery ajax. Существует проект под названием Meteor (http://www.meteor.com/), который пытается скрыть вызовы клиент-сервер от разработчика. Возможно, посмотрите на это или прочитайте, как работает архитектура клиент-сервер. –

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