2015-04-03 5 views
0

Я знаю, что здесь есть несколько вопросов/ответов, но ни один из них не работает для меня. Я хотел бы опубликовать на моей локальной машине страницу JQuery, но я не могу заставить ее работать.Как опубликовать на локальном компьютере - Query, node.exe

Вот пример, он просто публикует некоторые результаты на странице на сервере, который не существует, но я не знаю, как заставить его работать на моей локальной машине.

<!DOCTYPE html> 
<html> 
<head> 
    <title>Example</title> 
    <script src="jquery-1.7.js" type="text/javascript"></script> 
    <script src="jquery.tmpl.js" type="text/javascript"></script> 
    <link rel="stylesheet" type="text/css" href="styles.css"/> 
    <script type="text/javascript"> 
     $(document).ready(function() { 

      var data = [ 
       { name: "Astor", product: "astor", stocklevel: "10", price: "2.99"}, 
       { name: "Daffodil", product: "daffodil", stocklevel: "12", price: "1.99"}, 
       { name: "Rose", product: "rose", stocklevel: "2", price: "4.99"}, 
       { name: "Peony", product: "peony", stocklevel: "0", price: "1.50"}, 
       { name: "Primula", product: "primula", stocklevel: "1", price: "3.12"}, 
       { name: "Snowdrop", product: "snowdrop", stocklevel: "15", price: "0.99"}, 
      ]; 

      var templResult = $('#flowerTmpl').tmpl(data); 
      templResult.slice(0, 3).appendTo('#row1'); 
      templResult.slice(3).appendTo("#row2"); 

     }); 
    </script> 
    <script id="flowerTmpl" type="text/x-jquery-tmpl"> 
     <div class="dcell">  
      <img src="${product}.png"/> 
      <label for="${product}">${name}: </label> 
      <input name="${product}" value="0" required /> 
     </div> 
    </script> 
</head> 
<body> 
    <h1>Jacqui's Flower Shop</h1> 
    <form method="post" action="http://node.jacquisflowershop.com/order"> 
     <div id="oblock">   
      <div class="dtable"> 
       <div id="row1" class="drow"> 
       </div> 
       <div id="row2"class="drow"> 
       </div>    
      </div> 
     </div> 
     <div id="buttonDiv"><button type="submit">Place Order</button></div>      
    </form> 
</body> 
</html> 

я бегу node.exe на моей машине и слушает номер порта - в основном слушать, что то, что писал.

Есть ли способ опубликовать на моей локальной машине, у меня установлен IIS, но ничего не получилось.

редактировать

Существует скрипт, который идет с этим называемым formserver.js. Я запустил бы его с node.exe formserver.js. Я не знаю, как отправлять сообщения на локальную машину?

var http = require('http'); 
var url = require('url'); 
var querystring = require('querystring'); 

http.createServer(function (req, res) { 
    console.log("Request: " + req.method + " to " + req.url); 

    if (req.method == 'OPTIONS') { 
     res.writeHead(200, "OK", { 
      "Access-Control-Allow-Headers": "Content-Type", 
      "Access-Control-Allow-Methods": "*", 
      "Access-Control-Allow-Origin": "*" 
      }); 
     res.end(); 

    } else if (req.method == 'POST') { 
     var dataObj = new Object(); 
     var contentType = req.headers["content-type"]; 
     var fullBody = ''; 

     if (contentType) { 
      if (contentType.indexOf("application/x-www-form-urlencoded") > -1) { 
       req.on('data', function(chunk) { fullBody += chunk.toString();}); 
       req.on('end', function() {    
        var dBody = querystring.parse(fullBody); 
        writeResponse(req, res, dBody, 
         url.parse(req.url, true).query["callback"]) 
       }); 
      } else { 
       req.on('data', function(chunk) { fullBody += chunk.toString();}); 
       req.on('end', function() { 
        dataObj = JSON.parse(fullBody); 
        var dprops = new Object(); 
        for (var i = 0; i < dataObj.length; i++) { 
         dprops[dataObj[i].name] = dataObj[i].value; 
        } 
        writeResponse(req, res, dprops); 
       }); 
      } 
     } 
    } else if (req.method == "GET") { 
     var data = url.parse(req.url, true).query;    
     writeResponse(req, res, data, data["callback"]) 
    } 

}).listen(8080); 
console.log("Ready on port 8080"); 

var flowerData = { 
    astor: { price: 2.99, stock: 10, plural: "Astors"}, 
    daffodil: {price: 1.99, stock: 10, plural: "Daffodils"}, 
    rose: {price: 4.99, stock: 2, plural: "Roses"}, 
    peony: {price: 1.50, stock: 3, plural: "Peonies"}, 
    primula: {price: 3.12, stock: 20, plural: "Primulas"}, 
    snowdrop: {price: 0.99, stock: 5, plural: "Snowdrops"}, 
    carnation: {price: 0.50, stock: 1, plural: "Carnations"}, 
    lily: {price: 1.20, stock: 2, plural: "Lillies"}, 
    orchid: {price: 10.99, stock: 5, plural: "Orchids"} 
} 

function writeResponse(req, res, data, jsonp) { 
    var jsonData; 
    if (req.url == "/stockcheck") { 
     for (flower in data) { 
      if (flowerData[flower].stock >= data[flower]) { 
       jsonData = true; 
      } else { 
       jsonData = "We only have " + flowerData[flower].stock + " " 
        + flowerData[flower].plural + " in stock"; 
      } 
      break; 
     } 
     jsonData = JSON.stringify(jsonData); 
    } else {  
     var totalCount = 0; 
     var totalPrice = 0; 
     for (item in data) { 
      if(item != "_" && data[item] > 0) { 
       var itemNum = Number(data[item]) 
       totalCount += itemNum; 
       totalPrice += (itemNum * flowerData[item].price); 
      } else { 
       delete data[item]; 
      } 
     } 
     data.totalItems = totalCount; 
     data.totalPrice = totalPrice.toFixed(2); 

     jsonData = JSON.stringify(data); 
     if (jsonp) { 
      jsonData = jsonp + "(" + jsonData + ")"; 
     } 
    } 
    res.writeHead(200, "OK", { 
     "Content-Type": jsonp ? "text/javascript" : "application/json", 
     "Access-Control-Allow-Origin": "*"});  
    res.write(jsonData); 
    res.end(); 
} 
+1

Начать с изменением атрибут действия элемента формы. –

+0

что? Я пробовал localhost: но ничего не получал – Aindriu

+1

На каком порту сервер прослушивает? Как вы запускали скрипт узла (параметры)? –

ответ

1
<form method="post" action="http://localhost:8080"> 
+0

, спасибо, что это работает, но он не использует ни один из formserver.js (код в разделе редактирования) – Aindriu

+1

Вы видите какой-либо вывод в консоли? –

+0

Я получил значение post в браузере - {«astor»: «10», «totalItems»: 10, «totalPrice»: «29.90»} и Get/Post в консоли cmd. Дело только в том, что он не использовал никакого форматирования - только одну строку. но по крайней мере его работа .. спасибо !!! – Aindriu

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