Advertisement
Guest User

NodeSearchApp in Production

a guest
Sep 20th, 2014
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. App.js
  2.  
  3. var express = require('express');
  4. var mongoose = require('mongoose');
  5. mongoose.connect('mongodb://127.0.0.1:27017/searches');
  6. var searchModel = mongoose.model('search', {
  7.     title: String,
  8.     keywords: String,
  9.     desc: String,
  10.     link: String
  11. }, 'search');
  12. var app = express();
  13.  
  14. app.set('view engine', 'ejs');
  15.  
  16. app.get('/', function(req, res){
  17.     res.render('index');
  18. });
  19.  
  20. app.get('/search', function(req, res){
  21.     var keyword = req.query.q;
  22.     searchModel.find({'keywords' : new RegExp(keyword, 'i')}, function(err, doc){
  23.         if (err) throw err;
  24.         res.render('search', {
  25.             searchReturn: doc,
  26.             searchTerm: keyword
  27.         });
  28.     });
  29. });
  30.  
  31. app.listen(9000, function(){
  32.     console.log('Server listening on http://localhost:9000');
  33. });
  34.  
  35. models > search.ejs
  36.  
  37. <!DOCTYPE html>
  38. <html lang="en">
  39. <head>
  40.     <meta charset="UTF-8">
  41.     <title>Search Results for <%= searchTerm %></title>
  42.     <style>
  43.         h3{
  44.             padding: 0;
  45.             margin: 0;
  46.         }
  47.         h4{
  48.             padding: 0;
  49.             margin: 0;
  50.             color: green;
  51.         }
  52.         p{
  53.             padding: 0 0 5px 0;
  54.             margin: 0;
  55.         }
  56.     </style>
  57. </head>
  58. <body>
  59.     <form action="./search" method="GET">
  60.         <input type="text" name="q" value="<%= searchTerm %>">
  61.         <br />
  62.         <input type="submit" name="s" value="Search!">
  63.     </form>
  64.     <p>Search Results for <b><%= searchTerm %></b></p>
  65.     <% var items = searchReturn %>
  66.     <% for(var couter = 0; couter < items.length; couter++) { %>
  67.         <% item = items[couter] %>
  68.         <h3><a href="<%= item.link %>"><%= item.title %></a></h3>
  69.         <h4><%= item.link %></h4>
  70.         <p><%= item.desc %></p>
  71.     <% } %>
  72. </body>
  73. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement