NodeJS с ExpressJS - PullRequest
       5

NodeJS с ExpressJS

0 голосов
/ 02 мая 2018

Я пытаюсь научить ExpressJS и NodeJS использовать с API Twitter. Это моя установка до сих пор:

package.json

{
  "name": "twitter-express",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.16.3",
    "hogan-express": "^0.5.2",
    "twit": "^2.2.9"
  }
}

server.js

var express = require('express');
var server = express();

server.set('port', process.env.PORT || 3003);
server.engine('html', require('hogan-express'));
server.set('view engine', 'html');

server.get('/', function(req, res) {
   res.render('index', {title: 'Twitter', data: theTweets});
});

server.listen(server.get('port'), function() {
   console.log('Listening on port:' + server.get('port'));
});

var Twit = require('twit');
var theTweets = [];

var T = new Twit({
   consumer_key: '',
   consumer_secret: '',
   access_token: '',
   access_token_secret: ''
});

var params = {
   q: '#nodejs',
   count: 10,
   result_type: 'recent',
   lang: 'en'
}

T.get('search/tweets', params, getData);

function getData(err, data, response) {
   var tweets = data.statuses;
   for (var i = 0; i < tweets.length; i++) {
      theTweets.push(tweets[i].text);
   }
 }

Я использую hogan-express в качестве движка шаблонов, поскольку я следовал руководству. С этой настройкой все работает, и твиты отображаются на веб-странице. Однако, поскольку я пытаюсь узнать это, у меня есть несколько вопросов о Express и Node:

Если я правильно понял, мне нужно использовать Express для обслуживания клиентской части моего приложения (для отображения твитов на веб-странице), это лучший способ для приложения Node или я могу сделать это каким-либо другим способом

Должен ли я использовать шаблонизатор или я могу использовать его только с html? В таком случае, как я могу использовать его без шаблонизатора? Спасибо.

Ответы [ 3 ]

0 голосов
/ 02 мая 2018

Node, Express и Hogan решают различные проблемы здесь.

NodeJS - это среда выполнения на стороне сервера с открытым исходным кодом, построенная на движке Chrome V8 JavaScript. У него есть свои плюсы и минусы, но ради простоты вы можете рассматривать его как сервер, который имеет множество встроенных модулей для взаимодействия с сетевыми картами, понимания http и т. Д.
Express - это платформа для разработки веб-приложений. Фреймворки как раз напротив библиотек. Подумайте о фреймворках, как о структурах, у которых есть базовая разводка, и вам просто нужно поместить ваш код / ​​обработчики в необходимые места, и фреймворк будет вызывать ваш код / ​​обработчик при необходимости. Framework облегчает работу, выполняя все побочные задания, так что вы можете сосредоточиться на реальной проблеме, которую решаете. Вы можете делать вещи и без экспрессов, или говорить без каких-либо других рамок, но теперь вам приходится иметь дело со многими вещами.
Например, теперь вам нужно самостоятельно проанализировать заголовки http, проверить URL, проверить тип метода, проанализировать параметры запроса, а затем вызвать соответствующий обработчик для обработки этого конкретного запроса. Теперь, как вы можете видеть, почувствуйте, что все это накладные расходы, а не реальная проблема, которую вы хотите решить. При использовании Express вы получаете маршрутизатор, который заботится обо всех этих вещах, и вызываете обработчик, который вы определяете для определенного запроса. Таким образом, экспресс делает ваше развитие быстрее и проще. Также есть много других фреймворков, таких как hapi, sails и т. Д., Которые делают более или менее одинаковые вещи.
Хоган - шаблонизатор Шаблонный движок облегчает вашу работу по визуализации веб-страницы. Например, вы можете использовать условные выражения, циклы и т. Д. Только в вашем шаблонизаторе, что в противном случае вам нужно обрабатывать с помощью javascript. Например, просто учтите, что количество пунктов меню на вашей странице не является фиксированным, тогда как вы будете справляться с этим? Либо вы создадите html на лету только на стороне сервера, для которого вы будете использовать циклы, заданные механизмом шаблонов, либо вы будете обслуживать основной html и использовать javascript (jquery, angular и т. Д.) Для обновления меню.

0 голосов
/ 02 мая 2018

Я нашел подходящее решение для Express, Node js и Jquery (Javascript Узлы и HTML

<!DOCTYPE html>

            <head>
                <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
                <script type="text/javascript" src="jquery.min.js"></script>
                <script type="text/javascript">
                    $(document).ready(function() {
                        $.ajax({
                            type: "GET",
                            data: '{}',
                            contentType: "application/json; charset=utf-8",
                            url: "urlofyourserver:3000/path/",
                            dataType: "jsonp",
                            processdata: true,
                            success: function(data) {
                                $('#htmldiv').html(data);
                            }
                        });

                    });


            </script>
        </head>
        <body>
            <div class="mylist" id="htmldiv"></div>
        </body>
    </html>
0 голосов
/ 02 мая 2018

Точно так же, как вы можете наблюдать, Express (Node js framework) позволяет вам создавать внутреннее приложение или сервис. На стороне клиента вы можете получить API или данные, используя Angular, Jquery или Pure Javascript. мопс или нефрит должны быть просто хороши как двигатель темпла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...